I'm glad you jumped in LGO - I knew you would have better information
I think the equation that has to be used ultimately has two primary points, as you have mentioned.
1. The actual (or best guess) seat capacities by year or decade.
2. The actual (or best guess) attendance by year or decade.
If a routine was added to the game to force decisions on seating capacity or new construction, it would compare a team's seating and attendance to the base table and determine if a seating increase was required.
The second part of this would then offer the player an option of either increasing seating or a new ballpark. I think the age of the stadium would also have to part of the equation.
One thing that is obvious, however, is that a working solution to this issue would take some time - even on it's most basic level, but would be a huge improvement over the current system where the game will simply keep increasing the price of tickets and/or limit salary totals.