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/cli/commands/task_command.py
from airflow.models.dagrun import DagRun
from airflow.ti_deps.dep_context import DepContext
from airflow.ti_deps.dependencies_deps import SCHEDULER_QUEUED_DEPS
from airflow.utils import cli as cli_utils
from airflow.utils.cli import (
    get_dag,
    get_dag_by_file_location,
    get_dag_by_pickle,
    get_dags,
    suppress_logs_and_warning,
)
from airflow.utils.dates import timezone
from airflow.utils.log.logging_mixin import StreamLogWriter
from airflow.utils.net import get_hostname
from airflow.utils.session import create_session, provide_session
def _get_ti(task, exec_date_or_run_id):
    """Get the task instance through DagRun.run_id, if that fails, get the TI the old way"""
    dag_run = task.dag.get_dagrun(run_id=exec_date_or_run_id)
    if not dag_run:
        try:
            execution_date = timezone.parse(exec_date_or_run_id)
            ti = TaskInstance(task, execution_date)
            ti.refresh_from_db()
            return ti
        except (ParserError, TypeError):
            raise AirflowException(f"DagRun with run_id: {exec_date_or_run_id} not found")
    ti = dag_run.get_task_instance(task.task_id)
    ti.task = task
    return ti
def _run_task_by_selected_method(args, dag: DAG, ti: TaskInstance) -> None: