### 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.
depcrecation_message = (
        "Class `GCSObjectExistenceAsyncSensor` is deprecated and will be removed in a future release. "
        "Please use `GCSObjectExistenceSensor` and set `deferrable` attribute to `True` instead"
    )
    @mock.patch("airflow.providers.google.cloud.sensors.gcs.GCSHook")
    def test_gcs_object_existence_async_sensor(self, mock_hook):
        """
        Asserts that a task is deferred and a GCSBlobTrigger will be fired
        when the GCSObjectExistenceAsyncSensor is executed.
        """
        with pytest.warns(AirflowProviderDeprecationWarning, match=self.depcrecation_message):
            task = GCSObjectExistenceAsyncSensor(
                task_id="task-id",
                bucket=TEST_BUCKET,
                object=TEST_OBJECT,
                google_cloud_conn_id=TEST_GCP_CONN_ID,
            )
        mock_hook.return_value.exists.return_value = False
        with pytest.raises(TaskDeferred) as exc:
            task.execute(context)
        assert isinstance(exc.value.trigger, GCSBlobTrigger), "Trigger is not a GCSBlobTrigger"
    @pytest.mark.parametrize(
        "soft_fail, expected_exception", ((False, AirflowException), (True, AirflowSkipException))
    )
    def test_gcs_object_existence_async_sensor_execute_failure(self, soft_fail, expected_exception):