Another very minor detail, but you mention that RabbitMQ can do priority based on multiple queues. While that's certainly a fine way to do it, it's worth noting that AMQP also supports per-message priorities within one queue:
http://www.rabbitmq.com/amqp-0-9-1-reference.html#class.basi...
> The server MUST implement at least 2 priority levels for basic messages, where priorities 0-4 and 5-9 are treated as two distinct levels.
Depending on your client, it may be difficult to prioritize consumption of one queue over another, so this solution could be preferred.