Very interesting question, I don't have a specific answer but I can brainstorm here with you.
Others have figured out how to restrict access based on elapsed time, in the Meraki Marketplace Cloudifi is one example https://apps.meraki.io/details/cloudifi-guest-connect/ - if they can do time based access then there's a way...
Another option is to allow access immediately but put users into a profile that has the controls you wish, use APIs to detect the login/access event and set a timer, on expiry check for valid login and/or move the user into another profile that restricts access. There's a lot unexplored around this idea, including feasibility, but some discussion is here https://community.meraki.com/t5/Wireless-LAN/How-to-create-time-based-policy/td-p/67650
Another idea is an external captive portal server that you add to the permitted list and it proxies all of the ads so the end user need only access the server and not the entire internet. Either a cloud solution could do that or a locally hosted open source system.
Would love to have handed you a solution, but maybe someone else has implemented one of the above ideas or a different one?
Did you put a feature request/wish into Meraki for this?