**Apache Airflow version**:

2.0.1

**What happened**:

When clearing task across dags using `ExternalTaskMarker` the dag state of the external `DagRun` is not set to active. So cleared tasks in the external dag will not automatically start if the `DagRun` is a Failed or Succeeded state.

**What you expected to happen**:

The external `DagRun` run should also be set to Running state.

**How to reproduce it**:

Clear tasks in an external dag using an ExternalTaskMarker.


**Anything else we need to know**:

Looking at the code is has:

https://github.com/apache/airflow/blob/b23fc137812f5eabf7834e07e032915e2a504c17/airflow/models/dag.py#L1323-L1335

It seems like it intentionally calls the dag member method `set_dag_run_state` instead of letting the helper function `clear_task_insntances` set the `DagRun` state. But the member method will only change the state of `DagRun`s of dag where the original task is, while I believe `clear_task_instances` would correctly change the state of all involved `DagRun`s.

tests/sensors/test_external_task_sensor.py
with self.dag:
            sensor = ExternalTaskSensor(
                task_id='templated_task', external_dag_id='dag_{{ ds }}', external_task_id='task_{{ ds }}'
            )
        instance = TaskInstance(sensor, DEFAULT_DATE)
        instance.render_templates()
        assert sensor.external_dag_id == f"dag_{DEFAULT_DATE.date()}"
        assert sensor.external_task_id == f"task_{DEFAULT_DATE.date()}"
    def test_external_task_sensor_fn_multiple_execution_dates(self):
        bash_command_code = """
{% set s=execution_date.time().second %}
echo "second is {{ s }}"
if [[ $(( {{ s }} % 60 )) == 1 ]]
    then
        exit 1
fi
exit 0
"""
        dag_external_id = TEST_DAG_ID + '_external'
        dag_external = DAG(dag_external_id, default_args=self.args, schedule_interval=timedelta(seconds=1))