Thread-safe job submission failure handling.

The task.submit() method executes in the job submission thread, so
failures should be signalled by returning None to the job submission
batcher, which sends a task message to be handled by the main thread.