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.
airflow/models/taskinstance.py
first_task_id = first.task_id
        
        
        if all(t.dag_id == dag_id and t.execution_date == execution_date for t in tis):
            return and_(
                TaskInstance.dag_id == dag_id,
                TaskInstance.execution_date == execution_date,
                TaskInstance.task_id.in_(t.task_id for t in tis),
            )
        if all(t.dag_id == dag_id and t.task_id == first_task_id for t in tis):
            return and_(
                TaskInstance.dag_id == dag_id,
                TaskInstance.execution_date.in_(t.execution_date for t in tis),
                TaskInstance.task_id == first_task_id,
            )
        if settings.Session.bind.dialect.name == 'mssql':
            return or_(
                and_(
                    TaskInstance.dag_id == ti.dag_id,
                    TaskInstance.task_id == ti.task_id,
                    TaskInstance.execution_date == ti.execution_date,
                )
                for ti in tis
            )
        else:
            return tuple_(TaskInstance.dag_id, TaskInstance.task_id, TaskInstance.execution_date).in_(
                [ti.key.primary for ti in tis]
            )
TaskInstanceStateType = Tuple[TaskInstanceKey, str]
class SimpleTaskInstance: