Have you looked at using a queue?
I think I have similar use cases where I know I need a microflow to run after something has happened, but it doesn’t need to happen immediately. In this case I use the Queue module on the app store to trigger a microflow to run in the background. There is also the Process Queue module in the App Store, and Community Commons has a basic RunMicroflowAsyncInQueue that can do similar jobs.