The short contracts are stupid - protecting GMs and owners from themselves. The NBA has a problem with that where it means teams are turning rosters over constantly and it is hard to keep players period. Now you describe the Yankees to a T - they want to keep the YES money. Good on them. I am glad you are on board with that.
There is no real problem with MLB contracts. The horrible ones were known to be problematic at the time - I mean the deal to Pujols was walking into a bear trap. The basic problem is the players union got much dumber after Fehr left and got no guaranteed piece of the pie when the owners were stepping into a massive amount of cash. So this serves them right to a certain degree. The best way to get guys in their prime money is to get rid of salary arbitration in favor of a year of restricted free agency and let em go. Now if that is tied to a salary cap - fine, but I don't think the teams who own their own networks want to share to that degree. Besides, the Marlins are getting nearly $100M before selling a single ticket, so I can see that.
Where the league is saving money is on players under arbitration, low entry level salaries and paying minor leaguers below minimum wage. So improve all of those (even though minor leaguers are not union members) and get players into free agency earlier, and the other stuff solves itself. What we have right now is a system where a lot of teams are not trying to win ultimately, which is not good for the fans. This is one of the cases where the players goals align with the fans pretty well.