### Is there an existing issue for this?

- [X] I have searched the existing issues

### Current Behavior

It seems like whenever I open a connection to `localhost:4566` (4566 being exposed from the localstack container), for the next ~1 second any HTTP calls will have delayed responses. If I open 10 connections, the delay will be 10 seconds.

### Expected Behavior

Multiple connections can be opened and don't impact other requests until a certain connection limit.

### How are you starting LocalStack?

With a `docker run` command

### Steps To Reproduce

1. run localstack: `docker run --rm -it -p 4566:4566 --name ls localstack/localstack:0.14.0` - I managed to reproduce it with versions as old as 0.12.0
2. run something like this to see how long curls take inside the container: 

```bash
docker exec -it ls /bin/bash

# inside the container:
while true; do time curl localhost:4566; sleep 0.1; done
```

3. open connections with telnet:

```
telnet localhost 4566
```

4. observe extended response times in the curl loop. For me it's ~1s extra per open connection (I'm simulating opening more connections with a JVM application opening sockets as I request).

### Environment

```markdown
- OS: macOS / ubuntu, tried both x86 and arm64 macs, and an arm64 linux
- LocalStack: 0.12.0, 0.13.1, 0.14.0
```


### Anything else?

This surfaces itself as extremely slow responses whenever you have e.g. a JVM application that keeps a cached connection pool. Even 10 connections in a pool are enough to cause consistent delays every couple seconds (which I think is after the connections are closed due to the defaults on my client), under no additional traffic targeting localstack.
lis for lis in default_listeners if not isinstance(lis, MessageModifyingProxyListener)
        ]
    listeners_inbound = default_listeners + listeners
    listeners_outbound = listeners + default_listeners
    data = data_bytes
    original_request = RoutingRequest(method=method, path=path, data=data, headers=headers)
    def is_full_url(url):
        return re.match(r"[a-zA-Z]+://.+", url)
    def get_proxy_backend_url(_path, original_url=None, run_listeners=False):
        if is_full_url(_path):
            _path = _path.split("://", 1)[1]
            _path = "/%s" % (_path.split("/", 1)[1] if "/" in _path else "")
        base_url = forward_base_url or original_url
        result = update_path_in_url(base_url, _path)
        if run_listeners:
            for listener in listeners_inbound:
                result = listener.get_forward_url(method, path, data, headers) or result
        return result
    target_url = path
    if not is_full_url(target_url):
        target_url = "%s%s" % (forward_base_url, target_url)
    
    if not headers.get("Host"):
        headers["host"] = urlparse(target_url).netloc
    headers["X-Forwarded-For"] = build_x_forwarded_for(headers, client_address, server_address)
    response = None
    handler_chain_request = original_request.copy()
    modified_request_to_backend = None
    
    for listener in listeners_inbound: