Here's how I'd think through the problem.
I need to protect each page, but not necessarily through declarative techniques, because of this requirement you describe - some sort of redirect, instead of a standard message.
I could define something that could check each page load.
Check out slide 62 of this presentation
Here I define an applicaiton process that checks a relevantly designed table, and redirects if necessary. I'm not sure if this would also work for a modal page, but you could try it.
You could display a region on the the page you redirect to that facilates the request, maybe as as a button on the alert region.
All these concepts would have existed since I started using 3.x, except the ease of the modal dialog... it's now a matter of defining the appropriate table. Perhaps along the lines of
page_auth (
app_id number not null
,page_id number not null
,app_user varchar2 not null
,requested date not null
,approved date
,approved_by varchar2
,revoked date
,revoked by
)