What if you still have too many pull requests per day, compared to the time it takes to run CI? For example if you get 10 PRs a day but CI takes 3 hours?

Not sure if this does the same thing, but bors[1], another implementation of this concept, will batch together multiple PRs into a single CI run and follow a git-bisect-like workflow to identify the bad PR if a batch fails.

[1] https://github.com/bors-ng/bors-ng