How about this?
After the initial contract, no player should be forced to earn less than they could, or think they could, at another club.
However, if they are not a free agent, they would have to go to another club via a pre-draft draft (if a suitable trade cannot be arranged).
In this pre-draft draft they can set their own contract requirements. Any club who picks them, would be accepting those conditions.
However, the contract price is associated with a draft point cost. The greater the contract worth, in both dollars and years, the greater the amount of draft points that will need to be used to obtain the player. The choice of expending those points and drafting the player, goes in nominal draft order.
These draft points come from the main draft, and if selected, the points used go to the team who had the previous contract for them to either use in the main draft, or to pre-draft draft any of the other available players.
If a player isn’t selected who nominates for this process, they can either remain at their existing club for the contract they offered, or sit out for a year and retry the same process the following year.