**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.

airflow/api_connexion/endpoints/task_instance_endpoint.py
[
        (permissions.ACTION_CAN_READ, permissions.RESOURCE_DAG),
        (permissions.ACTION_CAN_READ, permissions.RESOURCE_DAG_RUN),
        (permissions.ACTION_CAN_READ, permissions.RESOURCE_TASK_INSTANCE),
    ]
)
@provide_session
def get_task_instance(dag_id: str, dag_run_id: str, task_id: str, session=None):
    """Get task instance"""
    query = (
        session.query(TI)
        .filter(TI.dag_id == dag_id)
        .join(DR, and_(TI.dag_id == DR.dag_id, TI.execution_date == DR.execution_date))
        .filter(DR.run_id == dag_run_id)
        .filter(TI.task_id == task_id)
        .outerjoin(
            SlaMiss,
            and_(
                SlaMiss.dag_id == TI.dag_id,
                SlaMiss.execution_date == TI.execution_date,
                SlaMiss.task_id == TI.task_id,
            ),
        )
        .add_entity(SlaMiss)
    )
    task_instance = query.one_or_none()
    if task_instance is None:
        raise NotFound("Task instance not found")
    return task_instance_schema.dump(task_instance)
def _apply_array_filter(query, key, values):