**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/baseoperator.py
self,
        start_date: Optional[datetime] = None,
        end_date: Optional[datetime] = None,
        ignore_first_depends_on_past: bool = True,
        ignore_ti_state: bool = False,
        mark_success: bool = False,
    ) -> None:
        """Run a set of task instances for a date range."""
        start_date = start_date or self.start_date
        end_date = end_date or self.end_date or timezone.utcnow()
        for execution_date in self.dag.date_range(start_date, end_date=end_date):
            TaskInstance(self, execution_date).run(
                mark_success=mark_success,
                ignore_depends_on_past=(execution_date == start_date and ignore_first_depends_on_past),
                ignore_ti_state=ignore_ti_state,
            )
    def dry_run(self) -> None: