### Body

Currently when you use multiple-outputs in decorator and it gets None value, it crashes.

As explained in https://github.com/apache/airflow/issues/32553 and workaround for ShortCircuitOperator has been implemented here:  https://github.com/apache/airflow/pull/32569 

But a more complete fix for multiple-outputs handling None is needed. 

### Committer

- [X] I acknowledge that I am a maintainer/committer of the Apache Airflow project.
@task_decorator
    def some_task():
        return 1
    @task_decorator
    def other(x):
        ...
    with DAG(dag_id="test", start_date=DEFAULT_DATE, schedule=None):
        other(some_task())
    assert caplog.messages == []
def test_task_decorator_dataset(dag_maker, session):
    from airflow import Dataset
    from airflow.models.dagrun import DagRun
    result = None
    uri = "s3://test"
    with dag_maker(session=session) as dag:
        @dag.task()
        def up1() -> Dataset:
            return Dataset(uri)
        @dag.task()
        def up2(src: Dataset) -> str:
            return src.uri
        @dag.task()
        def down(a: str):