**Apache Airflow version**:
v2.0.0

**What happened**:

Custom operators inheriting from DummyOperator are go in to a scheduled state, where as DummyOperator itself is set straight to success.

**What you expected to happen**:

All operators should be successfully executed.

**How to reproduce it**:

```py
from datetime import datetime
from airflow import DAG
from airflow.operators.dummy_operator import DummyOperator

class MyJob(DummyOperator):
    template_fields_renderers = {
        "body": "json"
    }
    template_fields = ("body",)

    def __init__(self, body, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.body = body

with DAG(
    dag_id="test",
    schedule_interval=None,
    start_date=datetime(2020, 8, 13),
) as dag:
    MyJob(task_id="aaaa", body={"aaa": "bbb"})

```

**Anything else we need to know**:
This is a known problem that we will fix, see: https://github.com/apache/airflow/pull/10956#discussion_r502492775
airflow/models/dagrun.py
is updated to a completed status (either success or failure). The method will find the first
        started task within the DAG and calculate the expected DagRun start time (based on
        dag.execution_date & dag.schedule_interval), and minus these two values to get the delay.
        The emitted data may contains outlier (e.g. when the first task was cleared, so
        the second task's start_date will be used), but we can get rid of the the outliers
        on the stats side through the dashboards tooling built.
        Note, the stat will only be emitted if the DagRun is a scheduler triggered one
        (i.e. external_trigger is False).
        """
        try:
            if self.state == State.RUNNING:
                return
            if self.external_trigger:
                return
            if not finished_tis:
                return
            dag = self.get_dag()
            ordered_tis_by_start_date = [ti for ti in finished_tis if ti.start_date]
            ordered_tis_by_start_date.sort(key=lambda ti: ti.start_date, reverse=False)
            first_start_date = ordered_tis_by_start_date[0].start_date
            if first_start_date:
                
                
                
                true_delay = (first_start_date - dag.following_schedule(self.execution_date)).total_seconds()
                if true_delay >= 0:
                    Stats.timing(f'dagrun.{dag.dag_id}.first_task_scheduling_delay', true_delay)
        except Exception as e:
            self.log.warning(f'Failed to record first_task_scheduling_delay metric:\n{e}')
    def _emit_duration_stats_for_finished_state(self):