### Is there an existing issue for this?

- [X] I have searched the existing issues

### Current Behavior

I created an SQS FIFO queue with content based deduplication and sent a message that contains the same messageBody and attributes twice.

The message gets sent and received by the queue twice.

Im using the latest version of localstack with docker-compose.


### Expected Behavior

When ContetBasedDeduplication is set to true a message with the same body should only be recieved once by the queue during the 5 minute deduplication interval.

### How are you starting LocalStack?

With a docker-compose file

### Steps To Reproduce

create queue
```
sqs_client.create_queue(
            QueueName='my_queue.fifo',
            Attributes={
                'FifoQueue': 'true',
                'ContentBasedDeduplication': 'true'
            },
        )
```

send message
```
item = {'hello': 'hola'}
sqs_client.send_message(
            QueueUrl='my_queue.fifo',
            MessageBody=json.dumps(item),
            MessageAttributes= {'hello': {'StringValue': 'hola', 'DataType': 'String'}},
            MessageGroupId='group-1'
        )
```





### Environment

```markdown
- OS:Ubuntu 20.04
- LocalStack: latest
```


### Anything else?

_No response_
"""
    LocalStack SQS Provider.
    LIMITATIONS:
        - Pagination of results (NextToken)
        - Delivery guarantees
        - The region is not encoded in the queue URL
    """
    queues: Dict[str, SqsQueue]
    def __init__(self) -> None:
        super().__init__()
        self._mutex = threading.RLock()
        self._inflight_worker = InflightUpdateWorker()
    def on_before_start(self):
        self._inflight_worker.start()
    def on_before_stop(self):
        self._inflight_worker.stop()
    def _require_queue(self, context: RequestContext, name: str) -> SqsQueue:
        """
        Returns the queue for the given name, or raises QueueDoesNotExist if it does not exist.
        :param: context: the request context
        :param name: the name to look for
        :returns: the queue
        :raises QueueDoesNotExist: if the queue does not exist
        """
        backend = SqsBackend.get(context.region)
        with self._mutex:
            if name not in backend.queues.keys():
                raise QueueDoesNotExist("The specified queue does not exist for this wsdl version.")
            return backend.queues[name]
    def _require_queue_by_arn(self, context: RequestContext, queue_arn: str) -> SqsQueue: