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
def fail():
            raise AirflowFailException("hopeless")
        with dag_maker(dag_id='test_does_not_retry_on_airflow_fail_exception'):
            task = PythonOperator(
                task_id='test_raise_airflow_fail_exception',
                python_callable=fail,
                retries=1,
            )
        ti = TI(task=task, execution_date=timezone.utcnow())
        try:
            ti.run()
        except AirflowFailException:
            pass  
        assert State.FAILED == ti.state
    def test_retries_on_other_exceptions(self, dag_maker):
        def fail():
            raise AirflowException("maybe this will pass?")
        with dag_maker(dag_id='test_retries_on_other_exceptions'):
            task = PythonOperator(
                task_id='test_raise_other_exception',
                python_callable=fail,
                retries=1,
            )
        ti = TI(task=task, execution_date=timezone.utcnow())
        try:
            ti.run()
        except AirflowException:
            pass  
        assert State.UP_FOR_RETRY == ti.state
    def _env_var_check_callback(self):