I use https://github.com/rimutaka/lambda-debug-proxy to run Lambdas locally while still being part of the AWS pipeline. It eliminates the need to emulate the input/output. That tool is for Rust only, but there is no reason why it can't be ported to other languages.
This is like a drunk ex bursting into your apartment, smashing furniture and demanding that you stop seeing that new boyfriend. Not a winning strategy by any means.
The articles states that it takes approximately 1000 requests to optimize / warm up. I suspect that they had concurrency set at the default 999, so the first 999 requests would spin up new instances.
Does that mean their 15,000 requests were actually 15 requests spread over 1000 instances?