Improve handling of CI jobs when a user has run out of CI minutes
<!--IssueSummary start-->
<details>
<summary>
Everyone can contribute. [Help move this issue forward](https://handbook.gitlab.com/handbook/marketing/developer-relations/contributor-success/community-contributors-workflows/#contributor-links) while earning points, leveling up and collecting rewards.
</summary>
- [Close this issue](https://contributors.gitlab.com/manage-issue?action=close&projectId=278964&issueIid=27852)
</details>
<!--IssueSummary end-->
Currently when a user has run out of shared CI runner minutes any jobs that are created are left in the queue in a pending state. This has a few negative effects:
* Adds a lot of irrelevant jobs to the queue as they accumulate
* Masks our ability to see how long a job is in the queue on average
* Potentially uses up all the users new shared minutes as soon as they buy more
We need to explore some options for how to improve these scenarios.
CC @brendan @jhampton
issue