This tests fails occasionally on mysql at least:

https://github.com/apache/airflow/pull/11555/checks?check_run_id=1260840314#step:9:1125

```
=================================== FAILURES ===================================
_____________ TestSchedulerJob.test_no_orphan_process_will_be_left _____________

self = <tests.jobs.test_scheduler_job.TestSchedulerJob testMethod=test_no_orphan_process_will_be_left>

    def test_no_orphan_process_will_be_left(self):
        empty_dir = mkdtemp()
        current_process = psutil.Process()
        old_children = current_process.children(recursive=True)
        scheduler = SchedulerJob(subdir=empty_dir,
                                 num_runs=1,
                                 executor=MockExecutor(do_update=False))
        scheduler.run()
        shutil.rmtree(empty_dir)
    
        # Remove potential noise created by previous tests.
        current_children = set(current_process.children(recursive=True)) - set(
            old_children)
>       self.assertFalse(current_children)
E       AssertionError: {psutil.Process(pid=3474, name='/usr/local/bin/', status='running', started='19:26:22')} is not false

tests/jobs/test_scheduler_job.py:871: AssertionError
```



tests/jobs/test_scheduler_job.py
job = SchedulerJob(None, heartrate=10, state=State.RUNNING)
        assert job.is_alive()
        job.latest_heartbeat = timezone.utcnow() - datetime.timedelta(seconds=20)
        assert job.is_alive()
        job.latest_heartbeat = timezone.utcnow() - datetime.timedelta(seconds=31)
        assert not job.is_alive()
        
        
        job.latest_heartbeat = timezone.utcnow() - datetime.timedelta(days=1)
        assert not job.is_alive()
        job.state = State.SUCCESS
        job.latest_heartbeat = timezone.utcnow() - datetime.timedelta(seconds=10)
        assert not job.is_alive(), "Completed jobs even with recent heartbeat should not be alive"
    def run_single_scheduler_loop_with_no_dags(self, dags_folder):
        """
        Utility function that runs a single scheduler loop without actually
        changing/scheduling any dags. This is useful to simulate the other side effects of
        running a scheduler loop, e.g. to see what parse errors there are in the
        dags_folder.
        :param dags_folder: the directory to traverse
        :type dags_folder: str
        """
        scheduler = SchedulerJob(
            executor=self.null_exec, num_times_parse_dags=1, subdir=os.path.join(dags_folder)
        )
        scheduler.heartrate = 0
        scheduler.run()
    @pytest.mark.quarantined
    def test_no_orphan_process_will_be_left(self):