Related to #3551
process_runs is a background task that updates run/job statuses, performs scaling, etc, and it's quick in all cases except when processing terminating runs – it terminates runs' active jobs by marking them as terminating and also calling stop_runner(), which communicates with the runner and thus can be slow.
stop_runner() should be moved to process_terminating_jobs. process_run should only mark jobs as needed graceful termination. This is primarily needed for #3551 pipeline processing, which is efficient when pipeline's processing times do not vary much.