Поскольку речь всё равно идет об серверах очередей — я бы сделал так, чтобы клиенты подключались к серверу с помощью JMX или любого другого протокола, который поддерживается используемой вами MQ (кстати, почему не ActiveMQ, который прекрасно встравивается в Java приложения?) и говорил «Я клиент, дайте мне задание тоже». Таким образом поднятие клиентов стало бы вопросом тривиальным — запустили Java-приложение, оно само подняло MQ клиента и само начало обрабатывать задания. Остановили/вырубили => соединение отвалилось, заданий туда больше не слать. Если результат выполнения данного задания не вернулся — поставить в очереди первым и отдать первому освободившемуся воркеру.