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
self.state = state
        self.hostname = ''
        self.init_on_load()
        
        
        self.raw = False
        
        self.test_mode = False
    @reconstructor
    def init_on_load(self):
        """Initialize the attributes that aren't stored in the DB"""
        self.test_mode = False  
    @property
    def try_number(self):
        """
        Return the try number that this task number will be when it is actually
        run.
        If the TaskInstance is currently running, this will match the column in the
        database, in all other cases this will be incremented.
        """
        
        
        if self.state in State.running:
            return self._try_number
        return self._try_number + 1
    @try_number.setter
    def try_number(self, value):
        self._try_number = value
    @property
    def prev_attempted_tries(self):