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 = False
        def on_execute_callable(context):
            nonlocal called
            called = True
            assert context['dag_run'].dag_id == 'test_dagrun_execute_callback'
        _, task = create_dummy_dag(
            'test_execute_callback',
            on_execute_callback=on_execute_callable,
            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()
        ti._run_raw_task()
        assert called
        ti.refresh_from_db()
        assert ti.state == State.SUCCESS
    @pytest.mark.parametrize(
        "finished_state, expected_message",
        [
            (State.SUCCESS, "Error when executing on_success_callback"),
            (State.UP_FOR_RETRY, "Error when executing on_retry_callback"),
            (State.FAILED, "Error when executing on_failure_callback"),
        ],
    )
    def test_finished_callbacks_handle_and_log_exception(self, finished_state, expected_message, dag_maker):