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
task_id_by_key[ti.dag_id][ti.execution_date][ti.try_number].add(ti.task_id)
    if task_id_by_key:
        
        
        
        
        
        
        conditions = or_(
            and_(
                TR.dag_id == dag_id,
                or_(
                    and_(
                        TR.execution_date == execution_date,
                        or_(
                            and_(TR.try_number == try_number, TR.task_id.in_(task_ids))
                            for try_number, task_ids in task_tries.items()
                        ),
                    )
                    for execution_date, task_tries in dates.items()
                ),
            )
            for dag_id, dates in task_id_by_key.items()
        )
        delete_qry = TR.__table__.delete().where(conditions)
        session.execute(delete_qry)
    if job_ids:
        from airflow.jobs.base_job import BaseJob
        for job in session.query(BaseJob).filter(BaseJob.id.in_(job_ids)).all():
            job.state = State.RESTARTING