@kona , I know you made this request, but it was really for laurakgibbs, so I'm tagging her on this.
I've made some significant progress, but it's definitely a hack right now. By that, I mean it's functional in my testing but not pretty and doesn't do any robust error checking.
But it takes this:

And turns it into this:

Here's the log from the console:

It did it in 3.534 seconds (that's with my DSL connection, it may be faster if you have a good internet connection). Now, that quick response is is in a sandbox course with just 91 assignments, only 13 of which could ever show missing assignments and only 3 students. In other words, it only had to make 44 API calls to accomplish that. The 5 is 1 to fetch the assignments and 4 to fetch the submissions and the 39 is the 3*13=39 changes it had to make. Your course would be faster since it's not beta, but slower since there are lots of assignments like that could be missing.
If it times out or something goes wrong, you can just run it again. It fetches all of the submissions, but since none of the assignments need updated, it doesn't make any of the calls to update them. Here is what I get when I re-run it

This time it finished in 1.241 seconds.
Like I said, it's not anything fancy right now and definitely not a user script that adds a button to the interface. Right now, it's something you where you go into the course, open up the developer tools (F12), switch to Console, paste it in, and press enter. Nothing to install right now.
In order to write the 'none' for the late_policy_status, the assignment has to be published, have a due date, and a submission type that is not 'none', 'not_graded', 'on_paper', 'wiki_page', 'external_tool'. That's what I found in the Canvas source code when I was searching for missing grades. Does that sound like what you want? I could make it process even if there was no due date, but I figured you were more planned out than I am so you would have all those set before the semester ever began.
When I opened it up to assignments that were published without due dates, it processed another 35 assignments and wrote 'none' 96 times. This time it took 14 seconds. In other words, timings may vary greatly.
The call I'm using to get the status doesn't work if the assignment isn't published and the call to get the submissions that will work if it's not published is much slower since I have to make a call for each assignment rather than being able to lump them together.
Here are the conditions ... can you verify that this is good or tell me which ones are problems?
- assignments must be published
- assignments must have a due date
- assignment must NOT be none, not_graded, on_paper, wiki_page, or external_tool
- students must be currently enrolled
- it only changes items that do not have a late_policy_status manually set. That means that if someone had already overwritten it (like your manual clicking does), then it would keep that value.
If you publish assignments, set due dates when there were none, or have students add the course after this is ran, those won't be updated. The setting of the due dates is the only one I really have any control over.