In the ASF SQS provider, we always raise a `QueueNameExists` exception if the queue already exists.

https://github.com/localstack/localstack/blob/aba25e4f9542a2cc1ce94b08d50247b8024c3d12/localstack/services/sqs/provider.py#L728-L729
However, [according to the spec](https://github.com/boto/botocore/blob/f960a8d73c12d16b53e4d9eacdf515224acb08f6/botocore/data/sqs/2012-11-05/service-2.json#L1138), "Amazon SQS returns this error only if the request includes attributes whose values differ from those of the existing queue."

result_send = sqs_client.send_message(QueueUrl=queue_url, MessageBody="test")
        result_recv1_messages = sqs_client.receive_message(QueueUrl=queue_url).get("Messages")
        result_recv2_messages = sqs_client.receive_message(QueueUrl=queue_url).get("Messages")
        # on
        assert (result_recv1_messages is None) != (result_recv2_messages is None)
        assert poll_condition(
            lambda: "Messages" in sqs_client.receive_message(QueueUrl=dl_queue_url), 5.0, 1.0
        )
        assert (
            sqs_client.receive_message(QueueUrl=dl_queue_url)["Messages"][0]["MessageId"]
            == result_send["MessageId"]
        )
    def test_dead_letter_queue_chain(self, sqs_client, sqs_create_queue):
        # te
        # cr
        queue_names = [f"q-{short_uid()}", f"q-{short_uid()}", f"q-{short_uid()}"]
        for queue_name in queue_names:
            sqs_create_queue(QueueName=queue_name, Attributes={"VisibilityTimeout": "0"})
        queue_urls = [aws_stack.get_sqs_queue_url(queue_name) for queue_name in queue_names]
        # se
        for idx, queue_name in enumerate(queue_names[:2]):
            policy = {
                "deadLetterTargetArn": aws_stack.sqs_queue_arn(queue_names[idx + 1]),
                "maxReceiveCount": 1,
            }
            sqs_client.set_queue_attributes(
                QueueUrl=queue_urls[idx],
                Attributes={"RedrivePolicy": json.dumps(policy), "VisibilityTimeout": "0"},
            )
        def _retry_receive(q_url):