Improve build abort
Solves a very rare case resulting in dead-lock when cancelling a build
It's possible that we will block on Notify anonymous function, when the select loop a few lines below gets finished. It will happen, because we use unbuffered channel, but don't have a possibility to consume it. Thus this will block trace sending routing. Trace sending routine will not finish, thus it will block trace.Success/Fail resulting in ability to cleanup a executor and releasing a machine.
This also renames BuildAbort to SystemInterrupt which is more accurate and makes a timeout a BuildError instead of SystemError.