sleep pauses the waiting when the game is paused, where uiSleep does not.
When the simulation is interrupted, time freezes, but not diag_tickTime. Also time at the start of in init.sqf is often reported as 0, even if the mission has already started.