I'd like to do this as well using the email address as a username and generate a random password.
You can set the success='' attribute on the button to send them to specific page where if you add %%blahblah%% it will get passed back. (https://s2member.com/kb-article/configuring-custom-return-urls-thank-you-pages-upon-success/). You can verify data as described. I'd add a shortcode and do this with a custom plugin instead of adding PHP to the WP page which is ugly, or is possible use an mu-plugin?
What I'd like to do is skip the option for the user to choose a username and create a user with the email address they used. I'd need to verify the account wasn't already in use and in that case update the account with the new payment information.
Anyone done this? Seems like a lot of posts asking for this sort of thing!