Имеет смысл использовать Camel для асинхронных вызовов, особенно потому, что он может аккуратно обрабатывать обратные вызовы. Например:
template.asyncCallback("activemq:queue:longTasks", request, callback);
Где обратный вызов - это объект org.apache.camel.spi.Synchronization, который обрабатывает как ответы, так и условия сбоя.