Stop processing tasks when interrupted

When BlockingQueueDispatcher's task executor thread is interrupted
we should break out of the task processing loop and allow the thread
to die.

Reinstate Jacoco code coverage in the build now that we've got to the
bottom of the real cause of the slowness.