One of the teams using our GitLab+runners had some jobs that (they said) should not run in parallel. The solution I went with was setting up two nearly identical runners, one for general usage, and one with “limit = 1” in config.toml
taking jobs tagged with “”. As the daemon still has “concurrent = 16” (that is the value we have found to be suitable with our hardware), I believe one of 's jobs will just mean that the runner everybody else (they could tag their jobs with “”, but the lower degree of parallelism will hurt them - and make me upset with them if I discover it, they can get a runner if they have a need) uses runs one job less.
It’s not exactly what you asked for or thought about, but quite close - and I think it can be adapted to your requirements.