Hi Sean,
The key difference is that we are always attempting to deliver to two namespaces. This means if there is an outage then messages that would typically be stuck in one namespace can still be processed as they exist in the other, the concern here is more that the send was successful but the message isn't received in a timely fashion, or even worst case lost because of an issue within ASB (depending on the nature of their outage). Of course the trade off is having to handle the idempotency and process more messages. However, the messages contain information about customer payments, so we do not want to risk losing these.
With the fail over strategy we are only attempting to deliver to one namespace and an outage in one namespace switches which namespace to use - so whilst we should always be able to send (assuming at least one namespace is available), the impact of an outage would differ as this would cause messages to be stuck and there is the risk (albeit small) of data loss.
An alternative would be to introduce a buffer between the sender and the bus, so messages could be replayed if required and the fail over strategy could be used here.