Slightly different roaming idea
Perhaps an incentive would be the operator with the least national coverage gets to piggyback off the operator with the most coverage in the areas where the first operator is deficient for a time (say, the same amount of time as an average customer's minimum contract period).
It would be an incentive for everyone to roll out more coverage, the operator with least coverage as they get their own network and aren't forced to subsidise a competitor for having poor coverage and the operator with most coverage as their roll-out is subsidised.
At the end of the period, if the operator still hasn't got their act together then they can't repeat again, that honour goes to the operator with the second-least national coverage. Customers would suddenly lose coverage, get annoyed, and leave. Tough luck, the operator knew it was coming.