### 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.
"""Construct a URL from the given base URL and path"""
    parsed = urlparse(base_url)
    path = path or ""
    path = path if path.startswith("/") else f"/{path}"
    protocol = f"{parsed.scheme}:" if parsed.scheme else ""
    return f"{protocol}//{parsed.netloc}{path}"
def with_context():
    """
    Decorator wraps function in a request context manager
    :return:
    """
    def context_manager(method=None, path=None, data_bytes=None, headers=None, *args, **kwargs):
        req_context = get_proxy_request_for_thread()
        ctx_manager = empty_context_manager()
        if not req_context:
            req_context = Request(url=path, data=data_bytes, headers=headers, method=method)
            ctx_manager = RequestContextManager(req_context)
        return ctx_manager
    def decorator(func):
        @functools.wraps(func)
        def wrapper(*args, **kwargs):
            ctx_manager = context_manager(*args, **kwargs)
            with ctx_manager:
                value = func(*args, **kwargs)
            return value
        return wrapper
    return decorator
@with_context()
def modify_and_forward(