Hi @samshaw,
Do you want to make the users create the account successfully only when they finish the email confirmation?
Could you please share a bit more about your scenario?
From your description, you want a registration form to be filled out, and once the form is submitted, the portal user will need to check their email for a confirmation email before they can fully authenticate to the Portal.
I think a custom registration form could achieve your needs, which will trigger an email to be sent to the user. This email acts as an invitation to authenticate, and lucky for us there is an invitation model built-in to Portals that we can leverage for this purpose.
1). Configure Portal security to be invite-only, please check the site settings as below:
Enable or disable user registration
Set “Authentication/Registration/OpenRegistrationEnabled” to false.
Set “Authentication/Registration/InvitationEnabled” to true.

2). Create our registration form, please create an entity form referring to as below:
About basic forms
Please include the following fields:

Once you have created the Form, you’ll need to add it to a Web Page. I recommend creating a page called “Register” and adding the form to that page.
Add a link to the page to the header of your portal, so you can always click there as opposed to the sign in page. Make sure that when using custom registration that you don’t lock down the home page, because if you do, users will be sent straight to the OOTB sign in page, which can’t be customized.
3). Create a traditional workflow to send the invite to the user, and to set the value of the “confirmed email” boolean field on the contact record to true.

Alternatively, we can just call the OOTB Send portal invitation to Contact workflow which does everything we need.
This workflow is OOTB and will create the invitation and send it for you:

4). Add to the parent workflow.

Hope it could help you.
Regards,
Qi