Race condition in removal of repeating events
Repeating timed events currently work by constantly re-adding themselves to the scheduler. This means the task is not in the queue while it is executing. Only once it is finished does it know whether it should re-add itself.
Whilst the task is executing and not resting in the queue, it can't be removed.
The scheduler and timed events are a quick hack anyway, and the concept needs some re-thinking.