this also affects small updates, preventing small sub-frame timing errors; if there's 10ms of hibernation left, and a 17ms update arrives, we should update for only 7ms, not 17ms