I actually have a more fair way for compensation to happen in Professional sports. I devised this back when I was playing. I based it on Coach Polk's means to determine Most Valuable Player and Most Valuable Pitcher for our team. There was a scoring sheet that was different for pitchers and players. You earned different point for different accomplishments. So a hit was a point for every base you made (single=1, double=2, etc) and RBI was 4 points a run scored was a point moving a runner over was a point, making a putout in the field was a point, exceptional plays could be more. There were also negative points for like strikeout was 1 and strikeout looking was 2 and errors were a point. There were like 40 or so of these categories on each sheet. So at the end of the season the player and pitcher with the most points was the MVP.
I obviously thought in terms of Baseball originally. It can be adapted to football the players and owners can agree upon a scoring system like that for each position where a player would say get a point for being in the play, they would earn points for yards and catches and throws and blocks etc and lose points for bad plays or penalties.
The compensation model would have a base amount based on time in the league. So just for example rookies get $500,000 base, year 2 gets 750,000, 3 gets 1.1 or some agreed upon scale. Then you earn so many dollars per point. This way a rookie can actually earn 15 or 20 million if they have a great season. Quarterbacks will be paid more because they are in a position to earn more points. Then when that veteran RBs legs are dead you won't be stuck paying them big bucks when they can only give you 700 yards. There would be no need for milestone bonuses because you are getting paid for every positive thing you do on the field. No need for a salary cap. Better teams who score more points and yards would have higher payouts at the end. There won't be an option to sit a player that is about to make a milestone, because they will be paying whoever is playing for every play. Any league awards like MVP or All-pro will get a bonus from a NFL pool that all teams will add to. The team won't pay them directly. Teams could also give points for players that do social things for the team off the field. I am sure those analytics guys could look at compensation over the past 5 or so years and come up with a formula that would make payroll be roughly the same percentage in this model.
I thought of this because of players like Pujols and Mike Trout that came into the league tearing it up and were underpaid and then as they get older they end up being overpaid. It would also prevent the service start date thing where a rookie does well in spring training but they don't bring them up right away so they get an extra year on the free agent clock.
This compensation model you would be paid for your performance each year. No one is gambling on what they player might or might not do and the owners can't be cheap and play the system. There would be very few places for negotiations in this model. PLayers would also move less because playing time is the only thing that really matters.