Upvote is for quality. No vote is for noise/disagreements. Downvote is for hate.
Yep. This, I think, “is the way”. The downvote for disagreement is not a good pattern and probably never was IMO. This is a good way of putting it. Another way someone else put it was essentially that the downvote is about the way in which something is said and the upvote is about whether you agree with it.
I honestly think separating them out in some way, so that we can still use the downvote as an effective tool of aggregating the quality of a post, but not in a way that is simply there to offset upvotes. Like, maybe two “scores”, number of upvotes and number of down votes with different filters for each? In a way, the “controversial” sort achieves something like this.