Вы должны использовать клиент AMQP, такой как Pika. Нет необходимости использовать MQTT.
ПРИМЕЧАНИЕ: команда RabbitMQ отслеживает список рассылки rabbitmq-users
и только иногда отвечает на вопросы в StackOverflow.
1: Да, CommandTarget управляет, откуда RoutedCommand начинает направлять.
2: ContextMenu имеет свойство PlacementTarget, которое предоставит доступ к Вашему UserControl:
<MenuItem x:Name="mnuProperties" Header="_Properties"
Command="{x:Static localcommands:TaskCommands.ViewTaskProperties}"
CommandTarget="{Binding PlacementTarget,
RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type ContextMenu}}}"/>
Чтобы постараться не повторять это в каждом MenuItem, Вы могли использовать Стиль.
3 и 4: Я сказал бы, что Ваше требование разумно. Так как Выполнить обработчик находится на Окне, не имеет значения прямо сейчас, но если у Вас были различные регионы приложения, каждый с их собственным Выполняет обработчик для той же команды, имело бы значение, где фокус был.