propagate event failed flag
The failure state of stalled events aren't being propagated. Easiest way to fix this is to have ForwardSchedulerSvc::eventFailed() set the fail flag on the EventContext, instead of having everyone do it individually.
We also need to set the fail flag in AlgoExecutionTask if an Algorithm throws an exception, and make sure we don't undo a fail status set by another Alg in the EventContext.