This is something we have started to investigate and would like to build out at some point, but there are some subtle challenges for doing this with non-stacked PRs.
The merge queue enforces a linear history with the PRs that are merged and the nice things about stacks is that they already have a linear history between the PRs in the stack. So when merging we can just rebase the entire stack on top of the latest commit on the trunk branch, then as CI passes we can quickly fast-forward the trunk pointer up the stack.
For non-stacked PRs, we could potentially take some number of unrelated PR in the queue and "stack" them on top of each other to get similar concurrent CI runs. But it isn't quite that simple for the following reasons.
The biggest issue is that we would like to ensure that the state of the PR in GitHub still makes sense. By rebased unrelated PRs on top of each other, the GitHub metadata for those upstack PRs is no longer accurate...the PR will either look like it contains the changes from all the unmerged PRs that it was stacked on top of, or we could update the base branch to make it look like it was not based on the trunk branch. Both of those are inaccurate representation of what is actually happening and we would really like to ensure that PRs are an accurate representation of what the PR is changing.
Another issue that is easier to deal with but still more complicated than in the stacked case is error handling. If a PR in the middle of a group we created hits some issue while we are trying to merge it, we should fail the merge of that PR, but then need to go back and be sure to restack the PRs above it with the failed PR removed.