Delaying manual approvals to scheduled maintenance window

We’re currently running a workflow with manual approval before pushing to production. However, we would like production pushes to happen during a scheduled maintenance window. Looking for a clean way to do this. Is anyone doing something like this? The best plan I can come up with right now is to have the post-approval step write some file and persist it, and then have a nightly scheduled workflow run and read that, continuing with production migration if the file is present. It seems a little hackish though…