I agree that the logical way to handle that is with an organic constraint, not a hard limit. My suggestions in rank order:
A. Implement a maintenance cost and track it for each CSL ship-type based on average ship age. Make the decision to retire ships based on the ship-type's profitability (income earned by the ship-type minus cost to build minus accrued maintenance cost). Once a shipping line reaches a certain age (10 years? 20 years?) start check annually whether each ship-type profitability is above a certain level act accordingly. This will naturally cycle out older ships and reduce overcapacity of specific ship-types (because idle ships cost maintenance and earn nothing, so they'll eventually be retired), with very limited computational load.
B. Allow the player to determine (on the wealth tab) how much to tax colonist ship tonnage and cargo ship tonnage (individually). This would give players the flexibility to encourage or discourage growth by giving the CSLs more or less income and hence driving growth (and/or contraction if idea A were implemented). This would only require adding two numeric fields on the wealth tab, so hopefully minimal programming work.
C. Can CSLs please be allowed to move minerals based on mineral reserve targets? Moving minerals around manually is one of my least favorite tasks, as it's pure drudge work on a repeating basis that adds little to nothing to enjoyment of the game.
D. Very strongly support the previously mentioned idea of getting more granular colony population controls. Some ideas:
D1. Ability to set TRANSPORTATION target, as in "transport 1m people here" (vs "bring people here until it hits 1M"), because then you don't risk massively overpopulating smaller colonies if your civilian lift capacity is large
D2. Ability to set a min/max target transportation RATE per year, as in "transport 1M people here per year" or "Take no more than 5m people from Earth per year"
I think these accomplish numbers 2, 3, and 5 from Steve's draft list of items in a more organic fashion, and items 1 and 4 could still make sense, although 4 is partly met by idea B.
From Steve
1) Payment based on distance in km, not transits
2) Fewer colony ships as a percentage of total ships, although perhaps not until 6+ ships built. I might also make the choice of new ship dependent on which ones are being used.
3) Dividends replaced by an admin overhead that increases in percentage terms based on the number of ships.
4) Payments affected by racial wealth multiplier
5) Have a simple retirement limit, such as 20 years, so that new ships are cycled in.