### Description

Currently some code in RDS Operators use boto waiters and some uses a custom `_await_status`, the former is preferred over the later (waiters are vetted code provided by the boto sdk, they have features like exponential backoff, etc). See [this discussion thread](https://github.com/apache/airflow/pull/27076#discussion_r997325535) for more details/context.

### Use case/motivation

_No response_

### Related issues

_No response_

### Are you willing to submit a PR?

- [ ] Yes I am willing to submit a PR!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)

"Starting to create snapshot of RDS %s '%s': %s",
            self.db_type,
            self.db_identifier,
            self.db_snapshot_identifier,
        )
        if self.db_type.value == "instance":
            create_instance_snap = self.hook.conn.create_db_snapshot(
                DBInstanceIdentifier=self.db_identifier,
                DBSnapshotIdentifier=self.db_snapshot_identifier,
                Tags=self.tags,
            )
            create_response = json.dumps(create_instance_snap, default=str)
            item_type = "instance_snapshot"
        else:
            create_cluster_snap = self.hook.conn.create_db_cluster_snapshot(
                DBClusterIdentifier=self.db_identifier,
                DBClusterSnapshotIdentifier=self.db_snapshot_identifier,
                Tags=self.tags,
            )
            create_response = json.dumps(create_cluster_snap, default=str)
            item_type = "cluster_snapshot"
        if self.wait_for_completion:
            self._await_status(
                item_type,
                self.db_snapshot_identifier,
                wait_statuses=["creating"],
                ok_statuses=["available"],
            )
        return create_response
class RdsCopyDbSnapshotOperator(RdsBaseOperator):