BTW: the worst case is to fire slighty less than 1 TickDuration early, but that happens only when the Scheduler is running “at capacity” (i.e. when dequeuing the tasks for one tick takes nearly the whole tick).