I am going to try this but don't have much time so not sure if I can thoroughly test it soon. But you might see if it works for you.
in citylevel.lua find
local Bounds = citylevel_GetValue(Level)
add: +1
local Bounds = citylevel_GetValue(Level) +1
the following if then statement will be inversely affected by adding 1:
if Bounds[2] < Count then
so that Bounds[2] is less likely to be less than Count
this way instead of having to find a magic number that works, the cities will level, say, to town when normally they would be leveling to city at that time
it might totally not work, i'm tired and might not be thinking straight :intello: