**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
with Stats.timer() as timer:
                if self.using_sqlite:
                    self.processor_agent.run_single_parsing_loop()
                    
                    
                    self.log.debug("Waiting for processors to finish since we're using sqlite")
                    self.processor_agent.wait_until_finished()
                with create_session() as session:
                    num_queued_tis = self._do_scheduling(session)
                    self.executor.heartbeat()
                    session.expunge_all()
                    num_finished_events = self._process_executor_events(session=session)
                self.processor_agent.heartbeat()
                
                self.heartbeat(only_if_necessary=True)
                
                next_event = timers.run(blocking=False)
                self.log.debug("Next timed event is in %f", next_event)
            self.log.debug("Ran scheduling loop in %.2f seconds", timer.duration)
            if not is_unit_test and not num_queued_tis and not num_finished_events:
                
                
                
                time.sleep(min(self._processor_poll_interval, next_event))
            if loop_count >= self.num_runs > 0:
                self.log.info(
                    "Exiting scheduler loop as requested number of runs (%d - got to %d) has been reached",
                    self.num_runs,
                    loop_count,
                )