My understanding is, non competes that do not pay you to stay out of the job market are unenforceable in many states, for example, in Illinois.
Noncompetes should be allowed only if the company offers to pay a minimum of market-rate salary for the duration (either what they were paying you or the best offer you've received, whichever is higher, to keep up with changes in market rates after you leave). That would then at least make it a valid contract.
But no company would want to do that, because then they'd have to pay everyone who quit or got fired for years afterward. And since the legal system is mostly controlled by corporations, that's unlikely.