I think including years and guaranteed money with the bid and awarding the player to the owner offering the most guaranteed money solves this problem too. Especially if you can choose how much you want to guarantee.
Although I need to think about how that would work... right now if you go bonus, you save 20% against the cap. Using that same logic, if you wanted to guarantee 50% of the contract, you'd save 50% against the cap? I don't want that.
Wouldn't we WANT the 1 year contract to be bonus? That at least requires some risk (although I get your point, that it would force the owner to take on the entire contract value against the cap).Another thought could be a hybrid where a one year deal cannot be a bonus contract?