I can understand why that's happening. The errors are added to requestScope when the code runs in any of the relevant lifecycle phases. The PhaseListener then picks up that requestScope object during the Render Response phase.
The problem is the redirectToPage() aborts the current lifecycle, points to the new page, which clears requestScope and runs that page's Page Load and Render Response phases. It's the same reason Jesse Gallagher uses flash scopes to pass messages between pages.
What do you think of the idea of additional methods - openLogBean.redirectToPage(String) and openLogBean.redirectToUrl(String)? That way, the PhaseListener can handle the redirect after the errors have been logged.
One additional question: in this scenario, how do you notify the user? I'm trying to identify whether you would need the logged error message(s).
It's not going to be possible with the current functionality to give the relevant message to the user, because requestScope is lost. But it may be possible to retrieve them and add to a sessionScope variable (though it could be tricky to clear that again!).