The idea of CPU Unlock fairness brings up a good point. Shard0 is an obvious bad choice for players.
How about fairly refilling buckets based on time instead of ticks. E.g. every 4 seconds add a player's CPU level to their bucket. Now the Devs target tickrate means something in game.
This would balance the slow vs fast shards a bit. It would allow shard0 to deliberately remain slow, or possibly slower (does anyone want 8s ticks with ~double available cpu?). This might enable new play styles, without the disadvantage of losing 33% of your CPU Unlock. (E.g. a player on average would pay for
Memory serialization less often on a slow shard).
This would also enable a FAST shard (1 tick/s) without making it cost tremendously more to run for the server. (Per player over head increases, but time executing players' code does not).
Best of all a change like this is nearly imperceptible to the players' bots. Any bot with enough CPU control to notice will also have enough cpu control to cope; it would appear that
Memory serialization is taking more or less cpu.