**Apache Airflow version**: 2.0.0, LocalExecutor

**Environment**: Docker on Win10 with WSL, official Python3.8 image

**What happened**:

When a DAG is running, and I delete task from the running DAG, the scheduler fails. When using Docker, upon automatic restart of the scheduler, the scheduler just fails again, perpetually.

![image](https://user-images.githubusercontent.com/46958547/103558919-a89f6e80-4eb5-11eb-8521-19b04ee3c690.png)

Note: I don't _know_ if the task itself was running at the time, but I would guess it was.

**What you expected to happen**:

The scheduler should understand that the task is not part of the DAG anymore and not fail.

**How to reproduce it**:

- Create a DAG with multiple tasks
- Let it run
- While running, delete one of the tasks from the source code
- See the scheduler break
airflow/models/dagrun.py
self,
        scheduleable_tasks: List[TI],
        finished_tasks: List[TI],
        session: Session,
    ) -> Tuple[List[TI], bool]:
        old_states = {}
        ready_tis: List[TI] = []
        changed_tis = False
        if not scheduleable_tasks:
            return ready_tis, changed_tis
        
        for st in scheduleable_tasks:
            old_state = st.state
            if st.are_dependencies_met(
                dep_context=DepContext(flag_upstream_failed=True, finished_tasks=finished_tasks),
                session=session,
            ):
                ready_tis.append(st)
            else:
                old_states[st.key] = old_state
        
        tis_filter = TI.filter_for_tis(old_states.keys())
        if tis_filter is not None:
            fresh_tis = session.query(TI).filter(tis_filter).all()
            changed_tis = any(ti.state != old_states[ti.key] for ti in fresh_tis)
        return ready_tis, changed_tis
    def _are_premature_tis(