### Apache Airflow version

2.2.0b1 (beta snapshot)

### Operating System

debian buster

### Versions of Apache Airflow Providers

n/a

### Deployment

Astronomer

### Deployment details

Helm info:
```
helm repo add astronomer https://helm.astronomer.io
cat <<- 'EOF'  | helm install airflow astronomer/airflow --namespace airflow -f -
airflowVersion: 2.2.0
defaultAirflowRepository: myrepo
defaultAirflowTag: myimagetag
executor: KubernetesExecutor
images:
  airflow:
    repository: myrepo
    pullPolicy: Always
  pod_template:
    repository: myrepo
    pullPolicy: Always
triggerer:
  serviceAccount:
    create: True
EOF
```

Dockerfile:
```
FROM quay.io/astronomer/ap-airflow-dev:2.2.0-buster-43897
COPY ./dags/ ./dags/
```

[the dag](https://gist.github.com/MatrixManAtYrService/8d1d0c978465aa249e8bd0498cc08031#file-many_triggers-py)

### What happened

Six tasks deferred for a random (but deterministic) amount of time, and the triggerer fired six events.  Two of those events then deferred a second time, which wasn't necessary because they had already fired.  Looks like a race condition.

Here are the triggerer logs: https://gist.github.com/MatrixManAtYrService/8d1d0c978465aa249e8bd0498cc08031#file-triggerer-log-L29

Note that most deferrals only appear once, but the ones for "Aligator" and  "Bear" appear twice.

### What you expected to happen

Six tasks deferred, six tasks fires, no extra deferrals.

### How to reproduce

Run the dag in [this gist](https://gist.github.com/MatrixManAtYrService/8d1d0c978465aa249e8bd0498cc08031) with the kubernetes executor (be sure there's a triggerer running).  Notice that some of the triggerer log messages appear nore than once.  Those represent superfluous computation.

### Anything else

_No response_

### Are you willing to submit PR?

- [ ] 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)

tests/jobs/test_triggerer_job.py
#
#
#
import datetime
import sys
import time
import pytest
from airflow.jobs.triggerer_job import TriggererJob
from airflow.models import Trigger
from airflow.operators.dummy import DummyOperator
from airflow.triggers.base import TriggerEvent
from airflow.triggers.temporal import TimeDeltaTrigger
from airflow.triggers.testing import FailureTrigger, SuccessTrigger
from airflow.utils import timezone
from airflow.utils.session import create_session
from airflow.utils.state import State, TaskInstanceState
from tests.test_utils.db import clear_db_runs
@pytest.fixture(autouse=True)
def clean_database():
    """Fixture that cleans the database before and after every test."""
    clear_db_runs()
    yield  
    clear_db_runs()
@pytest.fixture
def session():
    """Fixture that provides a SQLAlchemy session"""
    with create_session() as session:
        yield session
@pytest.mark.skipif(sys.version_info.minor <= 6 and sys.version_info.major <= 3, reason="No triggerer on 3.6")
def test_is_alive():