Stop processing colonies if nothing has changed since last month, you worked that out last month!
Yes had this idea back in the tile system. Back in the day the sectors checked periodically, if pops are placed on the tiles well. Proof was, if you rearranged the population, then game automatically put them back in a short time. NOT instantly! Which means, that the game ran down a periodic check on the planet, and rearranged pops accordingly.
It appears that same happen now when vacant jobs are present, and for that reason the same idea i had back then would solve it.
Somewhere in the game coding there is a function for this. The game does not place pops between planets automatically. So this function runs down on each planet. One by one. Instead of calling for this function periodically the game should call for it when required. Certain events would call this function INSTANT, but if not called, then not running.
Events like:
pop. modification on planet, or if that can't be done, then the pop modification would call globally. After all it doesn't happen too often.
pop. number change. Growth, emmigration, newly assimilated ones. Only the number of working pop. matters. Pop that marked for extermination, or assimilation are not.
Resettling. It is unlikely, that the planets are in the same state after it. So calling for it after each resettled pop on the affected planets is reasonable. I don't think, that checking 2 planet would hurt the performance in a noticable way.
Building/district built/updated.
There could be more, but i think the idea is obivious. Don't make worthless calculations when nothing happened. Make it when something happened. But make it instant when it does. By the way pop grow, and resettling calls for it instantly already. As newly grown or resettled pops get a job instantly, if available. Unless these use a different function for it.
Other proof, that this whole function is called periodically is a bug i sometimes see. Pops are rearranged randomly for no reason. To me it always happened when there was unemployed pop. the game just keep switching the unemployed pops with the employed ones randomly. Saw it once lately even on unmodded game with 2.5. Don't know, if they fixed it in 2.5.1. Going to make some testing to create this bug intentionally, because currently it may, or may not happen.