Instead, how about get rid of noncompetes entirely. If someone doesn't want you to go to be employed by a competitor of theirs, they'll have to make you a deal (employment, or other contract) that you'll accept at that time. No past noncompete clause in an imbalanced power dynamic required.
(Side note: This would also be incentive for companies to go back to inspiring loyalty, by example. And not hiring mercenaries who will hop at the next better deal.)
As long as you keep paying me my full salary, and I keep accepting it, I won't work for anyone else. If you stop paying me, or I stop accepting the money, I can go work for anyone else I choose to.
If that happens to look like me sipping a pina colada on a beach in Bali while you're paying me to do nothing, so be it. You're paying my salary for me not to work for another company.
I think that's the only fair non-compete.
If there is a real threat of damage to a company’s competitive position then the company should pay you to stay on the sidelines, instead companies are stifling individuals ability to grow and earn an income.