### Is there an existing issue for this?

- [X] I have searched the existing issues

### Current Behavior

When I m defining a queue with 30s delay (DelaySeconds)
After sending message ApproximateNumberOfMessagesDelayed is still at 0

### Expected Behavior

Define a queue with 30s delay 
Send a message 
Verify value of ApproximateNumberOfMessagesDelayed in the queue, expected value should be 1.
This is working with release 0.14.2

### How are you starting LocalStack?

With a docker-compose file

### Steps To Reproduce

#### How are you starting localstack (e.g., `bin/localstack` command, arguments, or `docker-compose.yml`)

    docker run localstack/localstack:latest

#### Client commands (e.g., AWS SDK code snippet, or sequence of "awslocal" commands)
`
awslocal sqs create-queue  --queue-name test --attributes '{"DelaySeconds":"30","MessageRetentionPeriod":"86400","ReceiveMessageWaitTimeSeconds":"0","VisibilityTimeout":"0"}'

 awslocal sqs get-queue-attributes --attribute-names All  --queue-url http://localhost:4566/000000000000/test
 awslocal sqs send-message --queue-url http://localhost:4566/000000000000/test --message-body 'test'
 awslocal sqs get-queue-attributes --attribute-names All  --queue-url http://localhost:4566/000000000000/test
`

### Environment

```markdown
- OS:Ubuntu
- LocalStack:latest or 0.14.4
```


### Anything else?

_No response_
"""
    Regularly re-queues inflight messages whose visibility timeout has expired.
    FIXME: very crude implementation. it would be better to have event-driven communication.
    """
    def __init__(self) -> None:
        super().__init__()
        self.running = False
        self.thread: Optional[FuncThread] = None
    def start(self):
        if self.thread:
            return
        def _run(*_args):
            self.running = True
            self.run()
        self.thread = start_thread(_run)
    def stop(self):
        if self.thread:
            self.thread.stop()
        self.running = False
        self.thread = None
    def run(self):
        while self.running:
            time.sleep(1)
            for region in SqsBackend.regions().keys():
                backend = SqsBackend.get(region)
                for queue in backend.queues.values():
                    queue.requeue_inflight_messages()
def check_attributes(message_attributes: MessageBodyAttributeMap):