**Apache Airflow version**: 1.10.8

**Environment**:

- **Cloud provider or hardware configuration**: 4 VCPU 8GB RAM VM
- **OS** (e.g. from /etc/os-release): RHEL 7.7
- **Kernel** (e.g. `uname -a`): Linux 3.10.0-957.el7.x86_64 #1 SMP Thu Oct 4 20:48:51 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
- **Install tools**:
- **Others**:
Note that the AWS DataSync Operator is not available in this version, we manually added it via Plugins.

**What happened**:

AWS DataSync service had a problem resulting in the Task Execution being stuck in LAUNCHING for a long period of time. 
DataSync Operator encounted a timeout exception (not an Airflow Timeout Exception but one from token expiry of the underlying boto3 service).
This exception caused the operator to terminate but the Task Execution on AWS was still stuck in LAUNCHING

Other Airflow Datasync Operator tasks started to pile up in QUEUED status and eventually timed out, also leaving their Task Executions in QUEUED state in AWS, blocked by the LAUNCHING task execution.

**What you expected to happen**:

The DataSync operator should by default cancel a task execution which is in progress - if the operator terminates for any reason.

The AWS DataSync service can only run 1 DataSync task at a time (even when a task uses multiple DataSync agents). So there is a risk to all other DataSync tasks if one task gets stuck, then any tasks submitted in future will not run.

So the operator should catch exceptions from the wait_for_task_execution and cancel the task before re-raising the exception.

**How to reproduce it**:

Very difficult to reproduce without an AWS account and DataSync appliance, and the uncommon error conditions which cause a task to get irrecoverably stuck.

**Anything else we need to know**:

I authored the DataSync operator and have a working AWS Account to test in. This issue can be assigned to me.
airflow/providers/amazon/aws/operators/datasync.py
#
#
"""Create, get, update, execute and delete an AWS DataSync Task."""
import logging
import random
from typing import List, Optional
from airflow.exceptions import AirflowException
from airflow.models import BaseOperator
from airflow.providers.amazon.aws.hooks.datasync import AWSDataSyncHook
class AWSDataSyncOperator(BaseOperator):
    r"""Find, Create, Update, Execute and Delete AWS DataSync Tasks.
    If ``do_xcom_push`` is True, then the DataSync TaskArn and TaskExecutionArn
    which were executed will be pushed to an XCom.
    .. seealso::
        For more information on how to use this operator, take a look at the guide:
        :ref:`howto/operator:AWSDataSyncOperator`
    .. note:: There may be 0, 1, or many existing DataSync Tasks defined in your AWS
        environment. The default behavior is to create a new Task if there are 0, or
        execute the Task if there was 1 Task, or fail if there were many Tasks.
    :param aws_conn_id: AWS connection to use.
    :type aws_conn_id: str
    :param wait_interval_seconds: Time to wait between two
        consecutive calls to check TaskExecution status.