**Apache Airflow version**: 2.0.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**:

I have the following DAG:

```py
from datetime import datetime, timedelta

from airflow import DAG
from airflow.operators.bash_operator import BashOperator

with DAG(
    dag_id="sla_trigger",
    schedule_interval="* * * * *",
    start_date=datetime(2020, 2, 3),
) as dag:
    BashOperator(
        task_id="bash_task",
        bash_command="sleep 30",
        sla=timedelta(seconds=2),
    )

```

And in my understanding this dag should result in SLA miss every time it is triggered (every minute). However, after few minutes of running I don't see any SLA misses...

**What you expected to happen**:

I expect to see SLA if task takes longer than expected.

**How to reproduce it**:

Use the dag from above.

**Anything else we need to know**:

N/A

airflow/jobs/scheduler_job.py
break
            if self.processor_agent.done:
                self.log.info(
                    "Exiting scheduler loop as requested DAG parse count (%d) has been reached after %d"
                    " scheduler loops",
                    self.num_times_parse_dags,
                    loop_count,
                )
                break
    @provide_session
    def _clean_tis_without_dagrun(self, session):
        with prohibit_commit(session) as guard:
            try:
                self._change_state_for_tis_without_dagrun(
                    old_states=[State.UP_FOR_RETRY], new_state=State.FAILED, session=session
                )
                self._change_state_for_tis_without_dagrun(
                    old_states=[State.QUEUED, State.SCHEDULED, State.UP_FOR_RESCHEDULE, State.SENSING],
                    new_state=State.NONE,
                    session=session,
                )
                guard.commit()
            except OperationalError as e:
                if is_lock_not_available_error(error=e):
                    self.log.debug("Lock held by another Scheduler")
                    session.rollback()
                else:
                    raise
            guard.commit()
    def _do_scheduling(self, session) -> int: