In my opinion, a non-compete is something that needs to be separately negotiated and compensated, rather than lumping it into "employment." If you agree to a non-compete, you are paid $X in exchange. If you violate the non-compete, you must pay $X back (and there could be a negotiated multiplier, e.g. $3X). In the absence of agreement, the legal default should be 1:1. If you are paid nothing for a non-compete, it is unenforceable. If you are paid $1, you must pay $1, and so on.
This gives each side an opportunity to value and agree upon the non-compete apart from the job itself. Eventually, most industries would settle on standards.