Propagate failure of event to the EventContext for more cases
This patch fixes:
- setting fail flag in the EventContext for a stall
- setting fail flag in the EventContext if an Algorithm throws an exception
- don't unset the fail flag in the EventContext when an Algorithm hasn't failed