Release lock before job actually started/stopped

I'm not really happy with how much worse this makes the Agent API, but it should address the bug at hand. I will work back through this and figure out how to make the Agent/EventHandler relationship feel better.