[#68128574] Monitor stopping jobs to ensure they return to idle.

 - If jobs are stalled in stopping state, idle them as the monitoring thread has likely died
 - Explicitly enforce jobs must be enqueued in order to run. A job in the queue can be stopped
   and by the time a worker picks it up, the status may be stopping or idle - the run should be
   aborted in this case.
 - Fixes a UI issue where the run button would be active while the job is in stopping state.