Revert to using separate NSThreads for actions as some of them, e.g. shell script, can be long-runners and delay all other actions in the queue