**Description**

Currently when the ECSOperator fails because the ECS task is not in 'success' state it returns a generic message like that in Airflow alerts that doesn't have much value when we want to debug things quickly.

`This task is not in success state {<huge JSON from AWS containing all the ECS task details>}`


**Use case / motivation**

This is to make it faster for people to fix an issue when a task running ECSOperator fails.

**Proposal**

The idea would be to return instead the last lines of logs from Cloudwatch (that are printed above in Airflow logs) so when we receive the alert we know what failed in the ECS task instead of having to go to Airflow logs to find it. This feature would involve changes there I think:
- https://github.com/apache/airflow/blob/2ce6e8de53adc98dd3ae80fa7c74b38eb352bc3a/airflow/providers/amazon/aws/operators/ecs.py#L354
- https://github.com/apache/airflow/blob/2ce6e8de53adc98dd3ae80fa7c74b38eb352bc3a/airflow/providers/amazon/aws/operators/ecs.py#L375


airflow/providers/amazon/aws/operators/ecs.py
if not self.client or not self.arn:
            return
        waiter = self.client.get_waiter('tasks_stopped')
        waiter.config.max_attempts = sys.maxsize  
        waiter.wait(cluster=self.cluster, tasks=[self.arn])
        return
    def _cloudwatch_log_events(self) -> Generator:
        if self._aws_logs_enabled():
            task_id = self.arn.split("/")[-1]
            stream_name = f"{self.awslogs_stream_prefix}/{task_id}"
            yield from self.get_logs_hook().get_log_events(self.awslogs_group, stream_name)
        else:
            yield from ()
    def _aws_logs_enabled(self):