Accelerating IBD with more intelligent UTXO pruning was the topic of "Accelerating IBD with SwiftSync" at this year's MIT Bitcoin Expo. TLDR...or maybe TLDW...you can get the correct final UTXO set from the network before starting (or compute it without checking sigs), and use that verify only the transactions that destroy UTXO's that never made it to the final set.
Select Day 1 (in the upper left drop-down) and jump to 42 minutes:
https://mitbitcoinexpo.org/livestreamThe PR on Bitcoin Core got a bit of resistance because it touches the code in so many places:
https://github.com/bitcoin/bitcoin/pull/34004In my experience, much like yours, even with a mere CPU, mass-storage I/O bottlenecks IBD.