Brenden,
I hear what you are saying, but doing this on authentication will only redirect them at that time. Nothing to stop the user once they are redirected to visit another page by manually typing the URL. By doing it in the RequestEvents.PostAuthorize it will be triggered on each page and hence if they have typed in a different url they will be sent back to the Wizard.
It's an odd requirement in that anonymous users have basic access to the site, whilst members have more detailed info - this is controlled using Roles in the web parts to display the additional info. Visitors need to be able to sign-up automatically but need to complete the wizard hence why the idea is to restrict them from visiting any page until the wizard is complete.
I think I am on the right track given the requirements above. Just not sure I'm using the right Request event - perhaps the RequestEvents.Authenticate is a better place?