RabbitMQ is open-source and designed to be platform neutral. It's highly extensible so you can add plugins for various protocols such as STOMP or MQTT and there are even protocol level plugins like XMPP or SMTP in the ecosystem.
It supports many of the features you're referring to with clustering. I'd recommend you check out
http://www.rabbitmq.com for more marketing information than I could provide here.
There are no performance advantages in using RabbitMQ with the Erlang client other than in using Erlang as a language and its VM. With RabbitMQ's goal of being platform neutral, performance is generally directly related to the performance of the language itself. For example, I would expect to see C or
Java based clients perform better than Ruby ones.