First, instead of polling, you can use a walletnotify script to be notified of new items in a subscribed stream. See the runtime parameters page for more information: https://www.multichain.com/developers/runtime-parameters/
In terms of redundancy, from MultiChain's perspective there's no problem with two nodes attempting to complete the exchange at the same time, because each exchange can only be completed once, and the chain will automatically reject the other (conflicting) transaction.
However this can of course be a problem if you're doing something external to the chain (such as debiting a credit card) as part of the process. This aspect of this issue isn't actually related to the blockchain, so you would need to employ a standard mechanism for redundancy/failover. Or perhaps you can include some kind of ID (hash of the exchange offer?) with the instructions to the credit card system, and request that they prevent processing duplicate transactions in terms of that ID on their end.