## Problem
Currently, even if `LAMBDA_REMOTE_DOCKER=1`, we unzip the zip files in the directory they are in, which is usually /var/lib/localstack, which usually has a bind mount to the host.
On docker desktop, due to the use of grpc-FUSE (on macos), this can be very slow, about 200 times slower than on volumes / directly on the host. With experimental virtio filesystem enabled (also on macos), this can be reduced to about 30 times as slow, but still problematic.
This means a lambda may take a lot of time processing, for each additional layer some more. This especially affects nodejs lambdas with huge node_modules folders.

## Probable solution
At least if `LAMBDA_REMOTE_DOCKER=1`, we should leave the initial zip files on the bind mount (for persistence etc), but the working directories after unzipping should be located on non-bind mounts, to speed up the IO for unzipping.
LAST_MODIFIED = datetime.datetime.utcnow()
    REVISION_ID = "e54dbcf8-e3ef-44ab-9af7-8dbef510608a"
    HANDLER = "index.handler"
    RUNTIME = "node.js4.3"
    TIMEOUT = 60
    FUNCTION_NAME = "test1"
    RETRY_ATTEMPTS = 5
    EVENT_AGE = 360
    DL_QUEUE = "arn:aws:sqs:us-east-1:000000000000:dlQueue"
    LAMBDA_OBJ = LambdaFunction(lambda_api.func_arn("test1"))
    def _create_function(self, function_name, tags=None):
        if tags is None:
            tags = {}
        self.LAMBDA_OBJ.versions = {
            "$LATEST": {
                "CodeSize": self.CODE_SIZE,
                "CodeSha256": self.CODE_SHA_256,
                "RevisionId": self.REVISION_ID,
            }
        }
        self.LAMBDA_OBJ.handler = self.HANDLER
        self.LAMBDA_OBJ.runtime = self.RUNTIME
        self.LAMBDA_OBJ.timeout = self.TIMEOUT
        self.LAMBDA_OBJ.tags = tags
        self.LAMBDA_OBJ.envvars = {}
        self.LAMBDA_OBJ.last_modified = self.LAST_MODIFIED
        self.LAMBDA_OBJ.role = self.ROLE
        self.LAMBDA_OBJ.memory_size = self.MEMORY_SIZE
    
    def test_put_function_event_invoke_config(self):