How to tie multiple event registrations to a single (non-monetary) transaction?
Why don't you create a contribution (using the api) and connect the participant to it?

I'd create that contribution with the right financial type and status pending and update with the QB report. On that topic, it probably needs some tuning and work to import the file, but https://github.com/Project60/org.project60.banking would make it possible to automatically match most of the payments and let your staff focus on the ones that are a bit weird (eg. where the amount or reference quite doesn't match)