### 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)

"""Test that ``EmrHook`` always return False state."""
        hook = EmrHook(aws_conn_id=aws_conn_id, emr_conn_id=emr_conn_id)
        result, message = hook.test_connection()
        assert not result
        assert message.startswith("'Amazon Elastic MapReduce' Airflow Connection cannot be tested")
    @mock_emr
    def test_get_cluster_id_by_name(self):
        """
        Test that we can resolve cluster id by cluster name.
        """
        hook = EmrHook(aws_conn_id="aws_default", emr_conn_id="emr_default")
        job_flow = hook.create_job_flow(
            {"Name": "test_cluster", "Instances": {"KeepJobFlowAliveWhenNoSteps": True}}
        )
        job_flow_id = job_flow["JobFlowId"]
        matching_cluster = hook.get_cluster_id_by_name("test_cluster", ["RUNNING", "WAITING"])
        assert matching_cluster == job_flow_id
        no_match = hook.get_cluster_id_by_name("foo", ["RUNNING", "WAITING", "BOOTSTRAPPING"])
        assert no_match is None
    @mock.patch("airflow.providers.amazon.aws.hooks.emr.EmrHook.conn")
    def test_add_job_flow_steps_execution_role_arn(self, mock_conn):
        """
        Test that execution_role_arn only gets passed when it is not None.
        """
        mock_conn.run_job_flow.return_value = {
            "JobFlowId": "job_flow_id",
            "ClusterArn": "cluster_arn",
        }
        mock_conn.add_job_flow_steps.return_value = {
            "StepIds": [