I apologize, I missed a few post in this topic and didn't realize you were referring to Ben's plugin + vm hack. You are right. Again, sorry.
But...
The vm hack in checkout.index.php exits the VM workflow completely and goes to CB's registration process. Unless I missed something in CB's code, there is no quick way to pass a return URL along through CB's registration process so that you can get back to VM's checkout process. The CB login module has a return URL, but the registration process does not. You could hack CB code, of course, to pass this through.
I wonder, though, whether you could hook into CB's process at the end of saveRegistration by adding a response in the vb_cb plugin for the onAfterUserRegistrationMailsSent event. That occurs very last after someone submits their registration through CB. If you could know that you were coming from the VirtueMart checkout process, you could possibly redirect in response to that event. Knowing that you came from VM's process, though, would probably require the same hacking of CB that I mentioned above to pass a return URL along, since you are passed completely through CB's registration page before ever getting to saveRegistration.
You can't really leave out the hack to checkout.index.php. Otherwise, the user's record won't be inserted into the CB user table (jos_comprofiler). The user won't exist in CB.
Unless... you hack from VM's side.
I did this on one of my sites (that doesn't use Ben's nice plugin) by hacking VM to have it update CB's jos_comprofiler table, rather than use CB's registration process. It is static and ugly, though, and doesn't handle CB's dynamic fields.
I'm sure there's an elegant way to handle this.