Do the same schedule logic as other schedule actions
Avoid adding a task if the inital delay is zero, instead add to the queue immedaitely.
Some small reformatting, and cleanup on things I liked better after exploring some other work recently