The run task should be scoped to "Compile" config to match sbt.

Otherwise, we still have shadowed run tasks and oddness.
Run hooks have to be pulled from state, or they are remembered by the Parser.
Add some more exception handling so we don't crash randomnly.