For xcoms pushed from different tasks, having the same execution_date and in the same Dag, the result of the xcom_pull with key set as None is not deterministic in its order

**Apache Airflow version**: 2.0


**Kubernetes version (if you are using kubernetes)** (use `kubectl version`):

**Environment**:

- **Cloud provider or hardware configuration**:
- **OS** (e.g. from /etc/os-release):
- **Kernel** (e.g. `uname -a`):
- **Install tools**:
- **Others**:

**What happened**:
When tasks in the same dag push Xcoms, the result of the xcom_pull comes in any order. The order is not deterministic.

**What you expected to happen**:

I expected the order to be deterministic.

**How to reproduce it**:

Run the provided example_xcom dag in the repository multiple times


airflow/models/taskinstance.py
If None (default), the DAG of the calling task is used.
        :type dag_id: str
        :param include_prior_dates: If False, only XComs from the current
            execution_date are returned. If True, XComs from previous dates
            are returned as well.
        :type include_prior_dates: bool
        :param session: Sqlalchemy ORM Session
        :type session: Session
        """
        if dag_id is None:
            dag_id = self.dag_id
        query = XCom.get_many(
            execution_date=self.execution_date,
            key=key,
            dag_ids=dag_id,
            task_ids=task_ids,
            include_prior_dates=include_prior_dates,
            session=session,
        ).with_entities(XCom.value)
        
        
        
        if is_container(task_ids):
            return [XCom.deserialize_value(xcom) for xcom in query]
        else:
            xcom = query.first()
            if xcom:
                return XCom.deserialize_value(xcom)
    @provide_session
    def get_num_running_task_instances(self, session):