I like #2. It sounds like your major concern with this method is that someone picks up a rookie who was just called up for a dollar, then he becomes such an absurd value that the manager has when 6 years later he still has contract in the single digits (a valid concern). I think there are some ways to circumvent this, though.
1. Make the per year $ increase large (I'd suggest $5/year, if not a little more)
2. Say that players picked up off the waiver wire can't be kept
3. Assign a base value to a waiver wire pickup (say $5 or something)
4. Use a FAAB (free agent acquisition budget) and have the acquisition price be the player's salary
Or some combination thereof. As an example, let's say someone picked up Ryan Braun in 2007 and decided to keep him. If you used rules 1 and 3, then in 2008, he would cost $10, then $15 last year, and $20 this year. Whoever has him would still likely keep him, but it wouldn't be absurd value. And three or four years from now, when his price tag is $35-$40, he might not be worth keeping, but still only be 28 years old.