Исходный вопрос вместил в себя слишком много разнородных тем и он немного сложнее, чем просто выбор между хранением данных в памяти и на диске. Все-таки, насколько я понимаю вопрос в архитектуре очередей в высоконагруженной системе?
Если да, то во-первых, в необходимо использовать очередь, состоящую из кластера узлов.
Во-вторых, надо определиться, что именно важнее для вашей системы: согласованность или доступность кластера.
Например, с RabbitMQ можно выбирать в какую сторону проводить оптимизацию.