I use my own custom payment gateway that keeps the entire checkout process on my website. This means when a customer clicks the "Confirm My Order" button script is run in the backgound (similar to PayPal Pro).
Now a response from the bank or PayPal may take several seconds. I have had several cases where the customer has clicked on the "Confirm My Order" a second time causing the transaction to be processed twice. NOT GOOD!
My suggestion is that after clicking the "Confirm My Order" button it should "grey out". And even better if a "Please Wait... (spinning disk)" icon appeared.