You can't use Filter-Id as that's too late in the packet process, the decision on whether the client is to be redirected must be made before destination NAT (where redirects to the web proxy happen), so the only thing that qualifies is pre-routing mangle. There is an undocumented RADIUS attribute that adds people to an address list for the duration of their session, I don't know if it works with PPPoE but if it does the below would work with central administration when you set that attribute. If not, you'll have to manually maintain address lists on the router (maybe via API calls?). It is attribute number 19 for the same vendor, called Mikrotik-Address-List and of type string.
Assuming that you have an address-list named "payment_reminder" that contains all clients that need to be shown redirects, you would first mark all TCP/80 connections of those customers as something potentially to be redirected. In a second rule you decide whether they actually are to be redirected:
/ip firewall mangle
add chain=prerouting connection-state=new src-address-list=payment_reminder protocol=tcp dst-port=80 action=mark-connection new-connection-mark=potential_payment_reminder passthrough=yes
add chain=prerouting connection-mark=potential_payment_reminder src-address-list=!has_seen_reminder action=mark-connection new-connection-mark=payment_reminder
Now all connections to TCP/80 from people on the payment_reminder address-list but not on the has_seen_reminder list are marked "payment_reminder". Next step in packet flow is destination NAT, so redirect those connections to the web proxy (adjust ports if your web proxy doesn't listen on 8080):
/ip firewall nat
add chain=dstnat connection-mark=payment_reminder action=redirect to-ports=8080
At this point the packet will go to the router (proxy) instead of being routed through it, so the input chain will see the packet. Use the connection-mark to add the source address to the has_seen_reminder address-list with a timeout of 4 hours so that the next new connection to TCP/80 by that customer will not be redirected:
/ip firewall filter
add chain=input connection-mark=payment_reminder action=add-src-to-address-list address-list=has_seen_reminder address-list-timeout=04:00:00 passthrough=yes
Just for completion's sake, the web proxy configuration would look like this:
/ip proxy set enabled=yes
/ip proxy access
add action=accept disabled=no dst-address=[IP of server that hosts reminder]
add action=deny disabled=no redirect-to="http://my.server.com/payment-reminder.html"
All of that is completely untested. Hope it works.