Fix bug with throwing an Exception within a Runnable

Throwing an Exception in a Runnable no longer leaves Scheduler in an inconsistant state
 causing further Runnables to never be run.