Interesting question.
We currently do not have a fallback model for the runners as the labels are different and typically for self hosted runners there is some other special requirement. However, we are working on a bunch of features to make the GitHub hosted runners more flexible and powerful.
On the job scheduling, I can take that feedback to the team and talk through how we might do that. One of the things we try to optimize for today is making sure you don’t have the opposite problem where a fast job can’t start because you have a workflow with a very long job that has other jobs downstream.