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
os.kill(ti.pid, signal.SIGTERM)
        with dag_maker('test_mark_failure_2'):
            task = PythonOperator(
                task_id='test_on_failure',
                python_callable=task_function,
                retries=1,
                retry_delay=datetime.timedelta(seconds=2),
            )
        dag_maker.create_dagrun()
        ti = TI(task=task, execution_date=DEFAULT_DATE)
        ti.refresh_from_db()
        with pytest.raises(AirflowException):
            ti.run()
        ti.refresh_from_db()
        assert ti.state == State.UP_FOR_RETRY
    def test_retry_delay(self, dag_maker):
        """
        Test that retry delays are respected
        """
        with dag_maker(dag_id='test_retry_handling'):
            task = BashOperator(
                task_id='test_retry_handling_op',
                bash_command='exit 1',
                retries=1,
                retry_delay=datetime.timedelta(seconds=3),
            )
        dag_maker.create_dagrun()
        def run_with_error(ti):