Я бы выделил еще сервер Q, который будет содержать и обслуживать очередь, в него будут складываться сырые файлы. Серверы W будут смотреть, есть еще задания для выполнения, а после выполнения результат складывать на тот же сервер W, в очередь готовых файлов.
По-моему, так легче будет масштабироваться, да и логика серверов М немного упростится.