I'm guessing that if the Login snippet tag is on that page, the ReCaptcha snippet is going to run and will call the reCaptcha preHook (though it shouldn't if the user is logged in), which will prevent the forward. Looking at the ReCaptcha snippet, it never checks the user's login status, so the Login snippet would have to know enough not to run that preHook if the user is logged in. Make sure your Login package is the current version.
Also, double-check to make sure the user has logout permission.
Some possible solutions if the problem persists.
1. Create two versions of the the Login snippet tag, one with the preHook and one without it. Put them in separate chunks and use the Personalize snippet to show the appropriate one. IOW, show the one without the preHook to logged-in users.
2. Make the logout link point to a page with just the login snippet tag, but without the preHook. To do that, change the &logoutResourceId to that page's ID.
[update] The old recaptcha hook doesn't do any checks if the user is logged in, I've suggested that the ReCaptchaV2 snippet do the same
[ed. note: BobRay last edited this post 7 months ago.]