This approach can work just as well for a much larger concurrency window, given more RAM (primarily), as shown in the maxi run above (50k window, complete in 5 hours). Even a unlimited (single) window will work just fine and is ideal for big machines. There's plenty of tuning left to do, this just proves the design. This run was restarted with all normal priority threads, which may not be optimal from a speed standpoint. It is also configured with 32 confirmation threads in the pool, where only 1 is required (confirmation fan-out is via std::transform), though this wasted cost should be minimal. Also this is fully validating all 295,000 checkpoint blocks, which is really pointless (never necessary). That alone adds 20 minutes to the mini run.
(edited)