Avoid concurrent workflows on main branch


We have a build and release workflow running on our main branch. It checks out the code builds it, deploys it to our staging environment and then runs tests against the staging environment.
Since we only have one staging env we cannot have a later workflow start before we are done with deploy and testing.

I’ve seen a orbs like eddiewebb/queue that allows to pause a workflow until the previous workflow is done.
But if multiple people merges to our main branch while deploy+test is running the last person to merge will have to wait a long time for his change to hit staging.

So is there a way to cancel a paused workflow if there are new workflows starting, but not cancel the workflow currently deploying and testing?

Best regards,