### Apache Airflow version

2.4.2

### What happened

In the scenario where we have 2 dags, 1 dag dependent on the other by having an ExternalTaskMarker on the parent dag pointing to the child dag and we have some number of mapped tasks in the child dag that have been expanded (map_index is not -1). 
If we were to clear the parent dag, the child dag's mapped tasks will NOT be cleared. It will not appear in the "Task instances to be cleared" list

### What you think should happen instead

I believe the behaviour should be having the child dag's mapped tasks cleared when the parent dag is cleared.

### How to reproduce

1. Create a parent dag with an ExternalTaskMarker
2. Create a child dag which has some ExternalTaskSensor that the ExternalTaskMarker is pointing to
3. Add any number of mapped tasks downstream of that ExternalTaskSensor
4. Clear the parent dag's ExternalTaskMarker (or any task upstream of it)

### Operating System

Mac OS Monterey 12.6

### Versions of Apache Airflow Providers

_No response_

### Deployment

Official Apache Airflow Helm Chart

### Deployment details

_No response_

### Anything else

_No response_

### Are you willing to submit PR?

- [X] Yes I am willing to submit a PR!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)

task_id="task_a_1", external_dag_id=dag_0.dag_id, external_task_id=task_b_0.task_id, dag=dag_1
    )
    task_b_1 = ExternalTaskMarker(
        task_id="task_b_1", external_dag_id="dag_2", external_task_id="task_a_2", recursion_depth=2, dag=dag_1
    )
    task_a_1 >> task_b_1
    dag_2 = DAG("dag_2", start_date=DEFAULT_DATE, schedule=None)
    task_a_2 = ExternalTaskSensor(
        task_id="task_a_2", external_dag_id=dag_1.dag_id, external_task_id=task_b_1.task_id, dag=dag_2
    )
    task_b_2 = ExternalTaskMarker(
        task_id="task_b_2", external_dag_id="dag_3", external_task_id="task_a_3", recursion_depth=1, dag=dag_2
    )
    task_a_2 >> task_b_2
    dag_3 = DAG("dag_3", start_date=DEFAULT_DATE, schedule=None)
    task_a_3 = ExternalTaskSensor(
        task_id="task_a_3", external_dag_id=dag_2.dag_id, external_task_id=task_b_2.task_id, dag=dag_3
    )
    task_b_3 = EmptyOperator(task_id="task_b_3", dag=dag_3)
    task_a_3 >> task_b_3
    for dag in [dag_0, dag_1, dag_2, dag_3]:
        dag_bag.bag_dag(dag=dag, root_dag=dag)
    yield dag_bag
    clear_db_runs()
@pytest.fixture
def dag_bag_parent_child():
    """
    Create a DagBag with two DAGs looking like this. task_1 of child_dag_1 on day 1 depends on
    task_0 of parent_dag_0 on day 1. Therefore, when task_0 of parent_dag_0 on day 1 and day 2
    are cleared, parent_dag_0 DagRuns need to be set to running on both days, but child_dag_1