I'm thinking about a gamified Loyalty mechanic that could turn into something that makes expanding more interesting.
Instead of similar to Loyalty pressure that could turn your city into a free city or other civ's city, make it a gradual step.
I would probably call it Control instead of Loyalty, it means how much the empire controls that city.
Control goes from 0% - 150%.
The raw percent is acting like a yield percentage.
So 100% Control means that you get a 100% yield outcome from that city, and with 50% Control you only get half as much yield from that city.
At 76% - 100% Control, you get a normal city.
At 51% - 75% Control, you can't purchase units or invest in buildings.
At 26% - 50% Control, you can't train units from that city, and the city's production rate becomes slower.
At 1% - 25% Control, that city turns into a puppet.
At 0% Control, that city will rebel or flip as a free city or another civ's city.
Passively, it's capped at 100%, but you can go higher by doing it actively.
Above 100% Control, unhappiness from the population is rising, as the citizens start to feel the empire is controlling them.
Population * (additional percentage * 2) = extra unhappiness.
150% Control, you get 100% unhappiness from the population.
But, for any additional Control percentage, you also get production modifiers for training units or constructing buildings.
A Control percentage can be passively influenced by having a city connection to the capital.
Having a >100% Controlled city nearby, city distance from the capital (depending on map size), etc.
But you can also do it actively by placing a counter-spy in the city, garrisoning a unit in the city, training units in the city, and having an internal trade route to the city.
This could be an interesting city expansion mechanic, I'm not sure a modmod has done a similar thing to this.
So far, I can imagine that both Tall and Wide will suffer from this.
Tall can't build a military so easily, as it can tank their Control to more than 100% if they keep building a military.
But they can maintain their Control value quite easily across cities.
Wide won't be as easy as it is now. They can't just settle wherever they like.
But they still can do it if they want the hassle of sending garrison units, having an internal trade route, sending a counter-spy, etc.
What I mean by Garrison units is kinda like how you put the military to pressure CS, but instead, you place them near your own city to keep the Control value intact.
But I don't want this tedious micro work, so it needs to be not a complicated thing to do.