### Body

Currently `start_date` is mandatory parameter.
For DAGs with `schedule=None` we can relax this requirement as no scheduling calculation needed so the `start_date` parameter isn't used.

### Committer

- [X] I acknowledge that I am a maintainer/committer of the Apache Airflow project.
job_id = 42
        dag = DAG(dag_id="test_create_dagrun_job_id_is_set")
        dr = dag.create_dagrun(
            run_id="test_create_dagrun_job_id_is_set", state=State.NONE, creating_job_id=job_id
        )
        assert dr.creating_job_id == job_id
    def test_dag_add_task_checks_trigger_rule(self):
        
        from airflow.exceptions import FailStopDagInvalidTriggerRule
        from airflow.utils.trigger_rule import TriggerRule
        task_with_non_default_trigger_rule = EmptyOperator(
            task_id="task_with_non_default_trigger_rule", trigger_rule=TriggerRule.DUMMY
        )
        non_fail_stop_dag = DAG(
            dag_id="test_dag_add_task_checks_trigger_rule", start_date=DEFAULT_DATE, fail_stop=False
        )
        try:
            non_fail_stop_dag.add_task(task_with_non_default_trigger_rule)
        except FailStopDagInvalidTriggerRule as exception:
            assert (
                False
            ), f"dag add_task() raises FailStopDagInvalidTriggerRule for non fail stop dag: {exception}"
        
        from airflow.models.abstractoperator import DEFAULT_TRIGGER_RULE
        fail_stop_dag = DAG(
            dag_id="test_dag_add_task_checks_trigger_rule", start_date=DEFAULT_DATE, fail_stop=True
        )
        task_with_default_trigger_rule = EmptyOperator(
            task_id="task_with_default_trigger_rule", trigger_rule=DEFAULT_TRIGGER_RULE
        )