this shifting of tick number relative to eachother seems like it forces us to drop a message, or process 2 messages in 1 tick
For network messages, you need to keep reading the network and dequeuing the messages as quickly as they come in. It won't be synchronized to ticks, or frames. But the messages in the packets will have tick numbers they're intended for.
The goal is to reduce input lag, without sending data too late. This means that the relationship between “target tick” and “wallclock time” will shift when you get an update. After all, the client ends up being slaved to wallclock time, with some offset function, to determine “what is the tick I should be running right now?”
If the client changes its clock offset, yes, the “target tick” will jump, and your simulation will process more than one tick within the same interval – but that's no different from having a slow graphics card, say, that runs at 20 fps, and thus needs 3 ticks processed between each frame for a 60 Hz simulation rate. Except it only happens occasionally in this case.
Do you have to hide this? For most players, for most connections, this offset will be adjusted once on connection, and then stay fixed. It may be that the game is perfectly playable without treating it any different from “the CPU got locked out for a bit and I'm now behind.”