After a lot of trial and error I have been successful at doing a limit fetch and limit delete with a limit of 9000 in 5 minute intervals using scripting API with a registering a timed trigger.
1. Get current time, increase the time by 5 minutes and find the 5 minute mark after that.
2. Register itself to run the time determined in (1).
3. Fetch a batch of 9000 ids matching the filter.
4. Delete the batch
This script would comfortably run for days cleaning out the inbox until it would hit some weird message that looked nearly identical to the messages around it and bomb(!?). Running it by hand would bomb at which point script won't be able to continue to execute. Deleting a message by hand would work. Running the script again after the manual deletion would work.