Pages with lazy-loaded images — half the time the screenshot fires before everything renders
Are you using waitUntil? You need to adjust what it's waiting for. Networkidle2 works great for simple pages, but if there's a lot of BS that never stops firing then it may never conder it loaded. I use domcontentloaded plus a hard coded delay.
Cookie consent banners blocking the actual content
Write a quick queryselector and have it click accept if it's there.
Memory usage goes through the roof when I try to do more than ~50 pages in a batch
Not much you can do about that. Chrome just sucks. Any alternative is either going to use just as much ram, or not be representative of the real world. So you're stuck with Chrome wearing different hats. Not using shitty hardware for it is amazing. We have some hosts that are almost 15 year old hardware and they're painfully slow. But put on something modern with an ssd and it's pretty fast. You just have to keep memory under control to keep it relatively cheap. You could probably buy an old laptop and run it as a server for about a years worth of decent VPS costs. As long as it's got an ssd it'll be fast enough for this.