Test execution times async

job mainloop: if test state is received, do not go through another loop
    
There's a bug in the current job mainloop that causes significant delays. The test state is received from the test via the queue in an async fashion, but if a proper state is received, we failt to mark the loop as done.
    
This puts the queue timeout in sync with the UI timeout and puts the cycle timeout back to 1s, without the adverse consequences.