The events and threads both have state machines, that need to be called repeatedly to finish their respective actions.
For example, to fully commit an event, __events_commit must be called twice after adding the event to the queue. Similarly, the thread __tick function must be called at least 2 times to finish a task execution (if the task is not an entry task).
The scheduler only calls each of these functions once after a reboot. This is not enough to fully commit the events or tasks in some cases, and may then lead to incorrect program behavior.