When deciding to recycle a runner, we query the GitHub API to ensure
it’s not currently running a job, protects against delayed webhook
events. If the runner has already been deleted, the API raises
`Octokit::NotFound`. This case should be handled similarly to the
destroy label logic, where we also verify if the runner is busy.
This commit moves the busy-check logic into a separate method to handle
both scenarios consistently.