One way to "solve" this issue is to simply update provinces in advance through out the tick (spread the load so to speak). Then for every interaction with a province that would change its state to the point where the prior calculation would render faulty the province would be flagged for updating and the server would iterate though the flagged provinces while there are any.
Not the best way of doing it, but compared to a tick-spike even if more resources are consumed total the requirements of the server are less due to resources being spread evenly over the hour.
This way everything is pre-calculated and the transition becomes as simple as shifting records or perhaps preferably reading data from a different table (one for even ticks, one for odd, switching back and forth keeping the one 'not in use' as buffer), someone more into DBMS should be able to clear that out).