Just make it so that when a certain faction’s numbers grow too far out of sync with the other two, that faction can no longer recruit players until balance is achieved. Just add a warning at character creation that says “The server you are joining currently favors X Faction. Until the balance of power is restored, this faction will be unavailable.”
Couple this with free faction changes and bonuses to factions with overwhelming numbers disadvantage, and I feel like this can be solved.
Obviously the whiners will whine about having their “choices” taken away, but you can either have a game that works and that fraction of the community get over it or move on, or you can have a game that doesn’t work and dies anyway.