Bans are a big hammer and have unintended consequences in areas not given adequate consideration.
Requiring payment for the duration of the non-compete is perfect. You can tweak the specific requirements up/down as problems arise.
In most practical situations, requiring payment (of almost any amount) will eliminate non-competes, because employers generally don't like paying for labor they can't use.
Requiring employers to pay for non-competes will be functionally equivalent to a ban. Nobody in their right mind will pay tens of thousands of dollars to enforce one.
Not true. This is called "garden leave" in the financial industry and is quite common. I believe the theory is that a lot of a trader's knowledge becomes obselete quite quickly, and it is cheaper to pay a former employee for a year or two then to let them use their strategies at a competitor.
(I disagree with the downvotes here - this is a reasonable position if you have no context)
In practice, non-competes that pay out 200k+/yr are quite common in finance (think firms like 2 sigma, Jane Street). They will pay to keep people from going to competitors, mainly to keep their strategies and implementation details reasonably protected.