Currently we use execution-date when generating the command to send via executor in https://github.com/apache/airflow/blob/9c94b72d440b18a9e42123d20d48b951712038f9/airflow/models/taskinstance.py#L420-L436

We should replace the execution_date in their to run_id instead and handle the corresponding changes needs on the executor and worker.
tests/jobs/test_local_task_job.py
job1.heartbeat_callback(session=None)
        
        
        job1.task_runner.process.pid = 2
        with pytest.raises(AirflowException, match='PID of job runner does not match'):
            job1.heartbeat_callback()
    @conf_vars({('core', 'default_impersonation'): 'testuser'})
    @mock.patch('airflow.jobs.local_task_job.psutil')
    def test_localtaskjob_heartbeat_with_default_impersonation(self, psutil_mock, dag_maker):
        session = settings.Session()
        with dag_maker('test_localtaskjob_heartbeat'):
            op1 = DummyOperator(task_id='op1')
        dr = dag_maker.create_dagrun()
        ti = dr.get_task_instance(task_id=op1.task_id, session=session)
        ti.state = State.RUNNING
        ti.pid = 2
        ti.hostname = get_hostname()
        session.commit()
        job1 = LocalTaskJob(task_instance=ti, ignore_ti_state=True, executor=SequentialExecutor())
        ti.task = op1
        ti.refresh_from_task(op1)
        job1.task_runner = StandardTaskRunner(job1)
        job1.task_runner.process = mock.Mock()
        job1.task_runner.process.pid = 2
        
        
        with pytest.raises(AirflowException, match='PID of job runner does not match'):
            job1.heartbeat_callback()
        job1.task_runner.process.pid = 1