The access to Service Bus is very reliable, but you will always have to build your solution in order to cope with "transient faults". This way you can check if a certain fault happens (a temporary 404 on a queue, a connection problem at your side, etc). These faults are called transient faults and you should retry on them. For this, the Service Bus client has built in functionality and on a client, you can specify a RetryPolicy. There are different retry policies available and you can create your own (ExponentialBackoff, etc) Check : http://msdn.microsoft.com/en-us/library/windowsazure/microsoft.servicebus.messaging.messagecliententity.retrypolicy.aspx
if you need your client application to be capable of working offline, then you might have to build in some custom store-forward capabilities (you mentioned MSMQ, you can also use Service Bus for Windows Server). The only downside is that there is no out of the box store-and-forward capabilities at the moment.
Hope this helps