Do not start a task twice when runnning concurrent tasks

A started boolean was added to the task to indicate when a task has been
sterted. This is checked before a task is invoked.