Also, instead of grandfathering it in (which is a fine idea itself) I would personally try to implement it the sooner the better. I'd give 2-3 years notice and then the year it is being implemented give each team one "amnesty clause" that it could use to get out of one bad long-term contract. This would minimize the chances that a team's long term plan's would be hindered by this rule change. Grandfathering is just as good, but takes longer and is more complicated to administer.
This is basically what I meant by grandfathering. Let the increased costs start next season...that will allow anyone who has been planning for this year the chance to use established costs. With a provision to allow a 1 time buyout at existing price after next year's money is posted.
I think the cost should be directly related to the contract value. I.E.
$20.2M = $2020 cost
$1.5M = $150 cost
IMO the costs shouldn't escalate so quickly. Something like the cost for extensions. Only altered a little:
less than $4 mil........$200
4.1 mil to 10 mil........$400
over 10 mil......$600
That lets a team out of a rookie contract for less than they earn in 1 season. Which will leave them cash for other things. A mid level contract basically costs 1 year earnings. Big contracts will cost about 1 1/2 years of earnings. And the cost is the same for each year you want to buy.
And the total pool doesn't stay the same from year to year, as not everybody spends all their money.
Which would support the argument that buyouts are not that common. Many GMs choose to just let contracts expire or players to retire instead of using buyouts. So they must be priced fairly.