### 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.
"""
    Test  @task original underlying function is accessible
    through the __wrapped__ attribute.
    """
    def org_test_func():
        pass
    decorated_test_func = task_decorator(org_test_func)
    assert hasattr(
        decorated_test_func, "__wrapped__"
    ), "decorated function does not have __wrapped__ attribute"
    assert decorated_test_func.__wrapped__ is org_test_func, "__wrapped__ attr is not the original function"
def test_upstream_exception_produces_none_xcom(dag_maker, session):
    from airflow.exceptions import AirflowSkipException
    from airflow.models.dagrun import DagRun
    from airflow.utils.trigger_rule import TriggerRule
    result = None
    with dag_maker(session=session) as dag:
        @dag.task()
        def up1() -> str: