ITS#9878 Treat tasks with interval == 0 as one-shot and stop them causing a busy loop in the scheduler
Some tasks need to be run once at a given time or the earliest opportunity, also currently, using interval == 0 on a task triggers a busy loop inside the scheduling task, halting progress for other tasks and any other work usually serviced by that thread.
This change deals with both issues at the same time.