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/models/test_taskinstance.py
callback_wrapper = CallbackWrapper()
        _, task = create_dummy_dag(
            'test_success_callback_no_race_condition',
            on_success_callback=callback_wrapper.success_handler,
            end_date=DEFAULT_DATE + datetime.timedelta(days=10),
        )
        ti = TI(task=task, execution_date=datetime.datetime.now())
        ti.state = State.RUNNING
        session = settings.Session()
        session.merge(ti)
        session.commit()
        callback_wrapper.wrap_task_instance(ti)
        ti._run_raw_task()
        ti._run_finished_callback()
        assert callback_wrapper.callback_ran
        assert callback_wrapper.task_state_in_callback == State.SUCCESS
        ti.refresh_from_db()
        assert ti.state == State.SUCCESS
    @staticmethod
    def _test_previous_dates_setup(
        schedule_interval: Union[str, datetime.timedelta, None], catchup: bool, scenario: List[str], dag_maker
    ) -> list:
        dag_id = 'test_previous_dates'
        with dag_maker(dag_id=dag_id, schedule_interval=schedule_interval, catchup=catchup):
            task = DummyOperator(task_id='task')
        def get_test_ti(session, execution_date: pendulum.DateTime, state: str) -> TI: