Here's another "MSMQ messages wouldn't leave the outgoing queue" problem that a customer reported.
The root cause was an entry in the HOSTS file from an ancient project the machine had been used for in a previous life:
To process the HTTP request, the MQISE component makes an RPC call to itself. To do this, it makes a reverse lookup to determine who it is but here it failed as it could not contact the machine called "intranet".
Solution was to delete the invalid entry. Alternatively, you could add a valid entry directly under "127.0.0.1 localhost" and before the other entries.
This is documented in the following KnowledgeBase article:
952571 A message may remain in the outgoing queue when you try to send a message to a Web server by using HTTP in Message Queuing 3.0 or in Message Queuing 2.0
It takes a lot of effort to write a title that long without including much useful information.