**Apache Airflow version**:
2.0.0


**What happened**:

The state of a DAG run does not update while the DAG is paused.   The _tasks_ continue to run if the DAG run was kicked off before the DAG was paused and eventually finish and are marked correctly.  The DAG run state does not get updated and stays in Running state until the DAG is unpaused.

Screenshot:
![Screen Shot 2021-04-19 at 2 18 56 PM](https://user-images.githubusercontent.com/10891729/115284288-7b9c6200-a11a-11eb-98ab-5ce86c457a17.png)


**What you expected to happen**:
I feel like the more intuitive behavior would be to let the DAG run continue if it is paused, and to mark the DAG run state as completed the same way the tasks currently behave.

**How to reproduce it**:
It can be repoduced using the example DAG in the docs: https://airflow.apache.org/docs/apache-airflow/stable/tutorial.html
You would kick off a DAG run, and then paused the DAG and see that even though the tasks finish, the DAG run is never marked as completed while the DAG is paused.

I have been able to reproduce this issue 100% of time.  It seems like logic to update the DAG run state simply does not execute while the DAG is paused.


**Anything else we need to know**:
Some background on my use case:
As part of our deployment, we use the Airflow rest API to pause a DAG and then use the api to check the DAG run state and wait until all dag runs are finished.  Because of this bug, any DAG run in progress when we paused the DAG will never be marked as completed.  

tests/jobs/test_local_task_job.py
run_id="test",
            state=State.RUNNING,
            execution_date=DEFAULT_DATE,
            start_date=DEFAULT_DATE,
            session=session,
        )
        ti = TaskInstance(task=task, execution_date=DEFAULT_DATE)
        ti.refresh_from_db()
        job1 = LocalTaskJob(task_instance=ti, ignore_ti_state=True, executor=SequentialExecutor())
        job1.task_runner = StandardTaskRunner(job1)
        settings.engine.dispose()
        process = multiprocessing.Process(target=job1.run)
        process.start()
        for _ in range(0, 20):
            ti.refresh_from_db()
            if ti.state == State.RUNNING and ti.pid is not None:
                break
            time.sleep(0.2)
        assert ti.pid is not None
        assert ti.state == State.RUNNING
        os.kill(ti.pid, signal_type)
        process.join(timeout=10)
        assert failure_callback_called.value == 1
        assert task_terminated_externally.value == 1
        assert not process.is_alive()
    @parameterized.expand(
        [
            (
                {('scheduler', 'schedule_after_task_execution'): 'True'},
                {'A': 'B', 'B': 'C'},