Pipeline jobs are running out of order

We’ve been using GitLab CI for many years without issue.
However recently we’ve started noticing that the CI is running jobs out of order resulting in more recently queued jobs taking precedence over older pipelines.

Our setup is fairly simple, we have lint, build and test stages each of which has two jobs one for Windows and one for macOS.
We use local runners, one for each OS, and they don’t compile/test at the same speed. Therefore, to not have one waiting for the other we using job dependencies to allow the Windows machine, for example, to continue with the rest of its jobs in the pipeline.
This has been working correctly for a long time.

However, recently, within the last few months, we have been noticing that when there are multiple queued pipelines, the runners will start newer jobs rather than doing them in order of when they were added.
This is quite annoying as sometimes pipelines won’t finish until much later because others have taken its place.
It’s not even doing them in the correct order for pipelines running on the same branch.

Has anything changed recently that would cause this behaviour?