Hi Andy,
Thanks for posting and welcome to our forum.
I recommend an email form. Launch InfoPath Designer and choose Email form. Make sure you publish it through email.
I guess the big question is whether or not the user account is activated before they get the form. I'm guessing you have some manual process for creating the account.
You might be able to automate the user account creation by using a full trust form on a domain admins machine, but it would require custom code.
So, assuming this is manual, I think your process makes sense but it could fail if the manual step to create the account is not done.
Good luck!