How do we stop the upvoting of unanswerably incomplete questions and unattempted homework?
I could list examples, but we've all seen plenty, so that's beside the point.
I'd strongly recommend going about making this major time sink less of a major timesink by introducing a specific close reason. This was discussed and agreed upon. This saves you the time to comment and gives the asker a positive way forward.
Also, if possible, we'd add the rule very specifically to the help "What can I ask about" and "What type of question should I avoid asking" pages. Unlike "fitting" the "needs more focus" or a custom verbage close reason to the question, which always leaves room for discussion, this establishes a fair (as possible - this is run by humans, after all) base to judge all questions. It's always better to say "hey, welcome here, but this is not the type of question you can ask here, see our definition" than to be like "and by common opinion, your question isn't welcome here".
It is unnerving, but there is no way to stop people from upvoting questions, from a moderation perspective. Moderators don't have control over voting, this is up to the community. If you see a bad question, then be sure to downvote. I see many questions that the community hands off to the moderation system when only a downvote would be appropriate.
If you see a homework question (that is also off topic, Homework questions are allowed, but they need an attempt at a solution, if they don't then they are off topic and) you can also flag it and let a moderator take care of it.
Just in case your wondering, the voting system is what it is: "Moderators can see more data in the system, including vote statistics (but not ‘who voted for this post’) and user profile information."
IMO this is because stack exchange does not want anyone to manipulate the voting system, not even a moderator. The only time votes are ever touched is in voting fraud.