We occasionally have users successfully charge transactions that never get into CRM. This is, in part, due to the fact that the process to get transactions in the CRM batch depends on the user keeping their browser open through the entire process after a credit card is charged. This has created some embarrassing situations where users were charged for event registrations or donations that we were unaware of.
I propose that you change your process so that the reconciliation between CRM and BBPS is a pure server-to-server process as opposed to being dependent on the client keeping their web browser open. I have found this to be a pretty common practice with other e-commerce solutions I have utilized.
If you ever do go to this model, a side benefit is that you can have a report on what server-to-server calls failed and then set up a process that allows you to retrigger a reconciliation process for any that have failed.