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
naive_datetime = DEFAULT_DATE.replace(tzinfo=None)
        
        op_no_dag = DummyOperator(task_id='op_no_dag')
        ti = TI(task=op_no_dag, execution_date=naive_datetime)
        assert ti.execution_date == DEFAULT_DATE
        
        with dag_maker('dag'):
            op1 = DummyOperator(task_id='op_1')
        dag_maker.create_dagrun()
        ti = TI(task=op1, execution_date=naive_datetime)
        assert ti.execution_date == DEFAULT_DATE
        
        tzinfo = pendulum.timezone("Europe/Amsterdam")
        execution_date = timezone.datetime(2016, 1, 1, 1, 0, 0, tzinfo=tzinfo)
        utc_date = timezone.convert_to_utc(execution_date)
        ti = TI(task=op1, execution_date=execution_date)
        assert ti.execution_date == utc_date
    def test_task_naive_datetime(self):
        naive_datetime = DEFAULT_DATE.replace(tzinfo=None)
        op_no_dag = DummyOperator(
            task_id='test_task_naive_datetime', start_date=naive_datetime, end_date=naive_datetime
        )
        assert op_no_dag.start_date.tzinfo
        assert op_no_dag.end_date.tzinfo
    def test_set_dag(self, dag_maker):