I wonder if just an option alongside auto-promotion saying "Auto-promote only as needed" would be useful. If I need a lot of lieutenant commanders but not many commanders, rather than the auto-promotion siphoning everything upwards into eternity, "Auto-promote only as needed" would only promote the couple of commanders to fill commander-required appointments and then cease. Likewise for ground forces. This, actually, in its own way would allow the player to specify their own "promotion formula", as promotions would only follow the available appointments in the player's OOB.
For example, let's say I have 4 battalions to one brigade, 4 brigades to one division, 4 divisions to one corps, and so one, then auto-promotion would effectively follow a 4-1 promotion formula. Whereas for another player who has, say, 2 battalions to a brigade, 2 brigades to a division, 2 to a corps, and so on, then their formula would effectively be 2-1.