Simplify AbortAndRestart procedure

Change processor.run_job() so that when it catches an AbortAndRaise
Exception it will call Async._restart() and return immediately.

Change Async._restart() so that it first checks if the Async is not
executing, then resets the _executing flag and calls Async.start().

Finally, update the tests to account for the above changes.