### Apache Airflow version

main (development)

### What happened

Steps to reproduce:
1. run 2 replicas of scheduler
2. initiate shut down of one of the schedulers
3. In Airflow UI observe message
<img width="1162" alt="image" src="https://user-images.githubusercontent.com/1017130/205650336-fb1d8e39-2213-4aec-8530-abd1417db426.png">

3rd step should be done immediately after 2nd (refreshing UI page few times). 2nd and 3rd steps might be repeated for couple of times in order to reproduce.


### What you think should happen instead

Warning message shouldn't be displayed.

The issue is that for this warning message recent (with latest heartbet) scheduler job is fetched
https://github.com/apache/airflow/blob/f02a7e9a8292909b369daae6d573f58deed04440/airflow/jobs/base_job.py#L133.

And this may point to job which is not running (state!="running") and that is why we see warning message.
The warning message in this case is misleading as another replica of scheduler is running in parallel.

### How to reproduce

_No response_

### Operating System

Linux

### Versions of Apache Airflow Providers

_No response_

### Deployment

Composer

### Deployment details

_No response_

### Anything else

_No response_

### Are you willing to submit PR?

- [X] Yes I am willing to submit a PR!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)

mock_sequential_executor = SequentialExecutor()
        mock_hostname.return_value = "test_hostname"
        mock_getuser.return_value = "testuser"
        mock_default_executor.return_value = mock_sequential_executor
        test_job = MockJob(None, heartrate=10, dag_id="example_dag", state=State.RUNNING)
        assert test_job.executor_class == "SequentialExecutor"
        assert test_job.heartrate == 10
        assert test_job.dag_id == "example_dag"
        assert test_job.hostname == "test_hostname"
        assert test_job.max_tis_per_query == 100
        assert test_job.unixname == "testuser"
        assert test_job.state == "running"
        assert test_job.executor == mock_sequential_executor
    def test_heartbeat(self, frozen_sleep, monkeypatch):
        monkeypatch.setattr("airflow.jobs.base_job.sleep", frozen_sleep)
        with create_session() as session:
            job = MockJob(None, heartrate=10)
            job.latest_heartbeat = timezone.utcnow()
            session.add(job)
            session.commit()
            hb_callback = Mock()
            job.heartbeat_callback = hb_callback
            job.heartbeat()
            hb_callback.assert_called_once_with(session=ANY)
            hb_callback.reset_mock()
            job.heartbeat(only_if_necessary=True)
            assert hb_callback.called is False