I think what the league system truly needs is a fundamental change. Auto kicking and manager restrictions are just bandaids to a bigger flaw. They're also a negative approach - you are being punished either for not being experienced enough (level limitation) or missing races (A justified approach - but it still is a punishment - no one likes to be kicked.). I believe there is a positive solution that doesn't involve forced kicking or limiting the players rights within the game. The flaw and the exact reason we're seeing the amount of small time leagues we are is because there are basically 2 groups of people that play the game in my opinion.
1. Players that want to compete against the general population and compare on rank, development, merit
2. Players that want to be grouped with friends or groups from other forums/workplaces/sites and only want to compete within that group
Really, the system needs to be split. To solve the issue, a game should be marked as public or private and that would have an effect on the game at large. Public games can be seen by anybody while private games are not listed in the league directory. A direct link is needed to access these games. This reduces clutter in the listings.
For instance, for public games players would have the ability to track their rank and other statistics as it is currently in the game. This would allow group 1 to compare/race/debate who is the better racer. For private games, these statistics are only generated for within the realm of the private game. This would make public players look to full leagues to compete as better leagues improve rank, while private games can stick with racing their 5 friends if they wish. I think the key reason as to why there is so many leagues is that players a) aren't sure what they're doing or b) want to race in private leagues, so they create one, it fails to gain traction and it ends up abandoned or with only a few people (based on instinct and no real data whatsoever besides forum posts here and there).
To increase the visibility of full public games, it might be worth having a 'League Suggestions' menu option that would also be presented to the player when the join the game for the first time. This could suggest games based on my ranking, days I play and level of activity. If I see that my game is getting a little quiet or isn't full, I can get a few League Suggestions based on my playing style. This would aim to direct the player to leagues which are competitive to the level of the player. The League Suggestions could also be incorporated in to the end of season email so players can choose to switch leagues without penalty.
I think the splitting of public/private games along with the increased visibility of established leagues with spots open will cut down on the number of leagues by providing the user with options based on the type of game they want to play. League Suggestions in turn will help fill the established leagues and prevent players entering in to leagues which are "dying" or have few players.
Well, thats my opinion on a solution :)