## 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.
"""Called once during startup - can be used, e.g., to prepare Lambda Docker environment"""
        pass
    def cleanup(self, arn=None):
        """Called once during startup - can be used, e.g., to clean up left-over Docker containers"""
        pass
    def provide_file_to_lambda(self, local_file: str, inv_context: InvocationContext) -> str:
        """Make the given file available to the Lambda process (e.g., by copying into the container) for the
        given invocation context; Returns the path to the file that will be available to the Lambda handler."""
        raise NotImplementedError
    def apply_plugin_patches(self, inv_context: InvocationContext) -> Optional[InvocationResult]:
        """Loop through the list of plugins, and apply their patches to the invocation context (if applicable)"""
        invocation_results = []
        for plugin in LambdaExecutorPlugin.get_plugins():
            if not plugin.should_apply(inv_context):
                continue
            
            if not hasattr(plugin, "_initialized"):
                LOG.debug("Initializing Lambda executor plugin %s", plugin.__class__)
                plugin.initialize()
                plugin._initialized = True
            
            inv_options = plugin.prepare_invocation(inv_context)
            if not inv_options:
                continue
            if isinstance(inv_options, InvocationResult):
                invocation_results.append(inv_options)
                continue
            
            file_keys_map = {}
            for key, file_path in inv_options.files_to_add.items():