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
called = completed = False
        def on_finish_callable(context):
            nonlocal called, completed
            called = True
            raise KeyError
            completed = True
        with dag_maker(
            'test_success_callback_handles_exception',
            end_date=DEFAULT_DATE + datetime.timedelta(days=10),
        ):
            task = DummyOperator(
                task_id='op',
                on_success_callback=on_finish_callable,
                on_retry_callback=on_finish_callable,
                on_failure_callback=on_finish_callable,
            )
        dag_maker.create_dagrun()
        ti = TI(task=task, execution_date=datetime.datetime.now())
        ti._log = mock.Mock()
        ti.state = finished_state
        ti._run_finished_callback()
        assert called
        assert not completed
        ti.log.exception.assert_called_once_with(expected_message)
    def test_handle_failure(self, create_dummy_dag):