I'm going to use Brintree transparent redirects in the project I came up with, and thinking about it, I think the best option is to split the form into two pages. The form on the first page is sent to your application and includes the account name, username, etc. The form on the second page is only payment information and is sent to Braintree.
Thus, you can verify your information in the first step. If it turns out that there is a typo in their email address and they cannot be reached, or their username is already accepted, or their password and password confirmation do not match or something else, then they can fix it before Braintree charges a card. You definitely do not want someone to pay you, and then find out that their account has not been created successfully, or that you will have very dissatisfied customers.
So, two pages seem to me the cleanest way to do this. I did not look at the process that 37signals uses - I assume that they use Javascript to catch the submission of the form, and then send the account information to their application for verification and saving. If this is not the case, an error message is displayed. If so, they allow you to transfer the form to Braintree. This will allow them to save the registration form on one page, but it looks like it would be dirty for me. You can look at your javascript site and see what you can see.
Edit - Yes, it looks like they are doing. They use Prototype, which I am not very familiar with, but you can see their code for yourself at the bottom of this file . This is actually not so bad, I could try it myself.
PreciousBodilyFluids
source share