### Apache Airflow version

2.5.1

### What happened

When using EMRHook.get_cluster_id_by_name or any any operator that depends on it (e.g. EMRAddStepsOperator), if the results of the ListClusters API call is paginated (e.g. if your account has more than 50 clusters in the current region), and the desired cluster is in the 2nd page of results, None will be returned instead of the cluster ID.

### What you think should happen instead

Boto's pagination API should be used and the cluster ID should be returned.

### How to reproduce

Use `EmrAddStepsOperator` with the `job_flow_name` parameter on an `aws_conn_id` with more than 50 EMR clusters in the current region.

### Operating System

Linux

### Versions of Apache Airflow Providers

apache-airflow-providers-amazon==7.2.1

### Deployment

Official Apache Airflow Helm Chart

### Deployment details

_No response_

### Anything else

_No response_

### Are you willing to submit PR?

- [X] 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)

"""
        Fetch the status of submitted job run. Returns None or one of valid query states.
        .. seealso::
            - :external+boto3:py:meth:`EMRContainers.Client.describe_job_run`
        :param job_id: The ID of the job run request.
        """
        try:
            response = self.conn.describe_job_run(
                virtualClusterId=self.virtual_cluster_id,
                id=job_id,
            )
            return response["jobRun"]["state"]
        except self.conn.exceptions.ResourceNotFoundException:
            
            raise AirflowException(f"Job ID {job_id} not found on Virtual Cluster {self.virtual_cluster_id}")
        except ClientError as ex:
            
            self.log.error("AWS request failed, check logs for more info: %s", ex)
            return None
    def poll_query_status(