**Description**

In similar fashion to https://github.com/apache/airflow/pull/4083, it would be helpful for Airflow to reattach itself to the ECS Task rather than letting another instance to start. However, instead of making this the default behavior, it would be better to use a `reattach` flag.

**Use case / motivation**

Allow Airflow the option to reattach to an existing ECS task when a restart happens, which would avoid having "rogue" tasks.
tests/providers/amazon/aws/operators/test_ecs.py
client_mock = mock.Mock()
        self.ecs.arn = 'arn'
        self.ecs.client = client_mock
        self.ecs._wait_for_task_ended()
        client_mock.get_waiter.assert_called_once_with('tasks_stopped')
        client_mock.get_waiter.return_value.wait.assert_called_once_with(cluster='c', tasks=['arn'])
        self.assertEqual(sys.maxsize, client_mock.get_waiter.return_value.config.max_attempts)
    def test_check_success_tasks_raises(self):
        client_mock = mock.Mock()
        self.ecs.arn = 'arn'
        self.ecs.client = client_mock
        client_mock.describe_tasks.return_value = {
            'tasks': [{'containers': [{'name': 'foo', 'lastStatus': 'STOPPED', 'exitCode': 1}]}]
        }
        with self.assertRaises(Exception) as e:
            self.ecs._check_success_task()
        
        self.assertIn("This task is not in success state ", str(e.exception))
        self.assertIn("'name': 'foo'", str(e.exception))
        self.assertIn("'lastStatus': 'STOPPED'", str(e.exception))
        self.assertIn("'exitCode': 1", str(e.exception))
        client_mock.describe_tasks.assert_called_once_with(cluster='c', tasks=['arn'])
    def test_check_success_tasks_raises_pending(self):