I *loved * Civ5 and only *appreciated * Civ6, i guess it's telling a lot about how much i hate micro-managing a ton of cities. That being said i do think Civ7 is on the right track to balance both (because tall shouldn't be better than wide either, both should be viable).
Happiness penalty for going over-cap is good. It's an easily understandable concept and a powerful one. Negative happiness not only gives you % penalties to all your yields, positive one gives you celebrations to benefit from your government bonuses (those are quite large) and get more social policies. I don't think we need other penalties for going over the cap.
The issue with the settlement cap is that it's too easy to get a lot of happiness to ignore it (especially in later ages, not so much in Antiquity) and because the happiness penalty caps at 7 settlements over the cap, if you reach that point, nothing prevents you from having 50 settlements over the cap.
If they really want settlement cap to matter more they can add a revolt mechanism for settlement deep into unhappiness even outside the crises (the mechanisms already exist), just have it trigger with more unhappiness outside the crises but removing that penalty cap is the first step.
The food/growth curve makes it hard to grow really large cities which would make tall stronger but that can easily be addressed with simple numbers tweaking. If players need to stay within the settlement limit and can't have an unlimited number of town to feed their cities, then the choice of growing larger cities by concentrating the limited food supply or more smaller cities becomes more important.
Finally the gold cost of converting a town to a city is another number which can be tweaked if going wide is too strong/too easy.
No need to add more penalties for wide. Tweaking numbers is enough. The only real issue is infinite growth due to the cap in happiness penalties because mathematically you can't balance infinite with any number.