Scheduler работает через Dispatcher.
Проверка не пора ли выполнять задания реализована в задаче, которая при выполнении ставит себя в хвост диспетчера.
При обнаружении задач, они не исполняются сразу, а ставятся в хвост диспетчера (в том порядке, в каком они хранятся в scheduler'е).