Wrong.
Chrome/Chromium crashes due to hard coded memory limit in V8.
Firefox has no command line option for printing pdfs.
No other libraries render the pdfs correctly because they are not full-fledged web engines.
So what were my options?
1. Read/understand Chromium source, recompile to lift the memory limit.
2. Read/understand Firefox source, recompile to add a command line option.
3. Use some UI testing framework to automate pdf printing in Firefox.
Eventually I did 4, which is split the html files into smaller chunks, convert and re-combine. Of course the problem is how do you know where to split the html so that it's at the boundary of the page? The solution is to do a binary search for the number of entries to put into each chunk when the number of generated pdf pages changes. What a pain.