workDoNow не используется нигде, помимо потока-worker'a. У каждого воркера workDoNow собственный, как и временный массив. Поскольку ни чтение ни запись из других потоков в workDoNow конкретного потока не ведется, надобности дополнительно синхронизировать его не вижу.
За последнее вам отдельно спасибо — тема интересная, прочту на досуге.
Вообщем-то вопрос решен, если и остались некоторые косяки в коде, то раньше чем пока моя кучка классов не вырастет в приложение их я не найду. Спасибо всем вышеотписавшимся.
UPD: Промахнулся с ответом, это в ветку выше.