While a lambda is still processing (archive unpacking etc), the lambda state should be set to "Pending" (currently "Active") and invocations to that lambda should fail (currently, it can end up in a inconsistent state in this case, like lambdas being executed without layers).

Lambda state should reflect the current internal state, and invocations should fail if not active.
role=lambda_su_role,
        )
        data = {short_uid(): f"data-{i}" for i in range(3)}
        event = {
            "table_name": table_name,
            "region_name": dynamodb_client.meta.region_name,
            "items": [{"id": k, "data": v} for k, v in data.items()],
        }
        def wait_for_table_created():
            return (
                dynamodb_client.describe_table(TableName=table_name)["Table"]["TableStatus"]
                == "ACTIVE"
            )
        assert poll_condition(wait_for_table_created, timeout=30)
        lambda_client.invoke(FunctionName=function_name, Payload=json.dumps(event))
        rs = dynamodb_resource.Table(table_name).scan()
        items = rs["Items"]
        assert len(items) == len(data.keys())
        for item in items:
            assert data[item["id"]] == item["data"]
    @parametrize_python_runtimes
    def test_lambda_start_stepfunctions_execution(
        self, lambda_client, stepfunctions_client, create_lambda_function, runtime, lambda_su_role
    ):
        """Start stepfunctions machine execution from lambda"""
        function_name = f"test-function-{short_uid()}"
        resource_lambda_name = f"test-resource-{short_uid()}"
        state_machine_name = f"state-machine-{short_uid()}"
        create_lambda_function(
            handler_file=TEST_LAMBDA_START_EXECUTION_FILE,