Above has been optimized to 22 secs no hash, 36 secs muhash, and 83 secs serialized hash. These are 3 different options for the utxo accumulation state in the bitcoind rpc call. Peak private memory during the scan has been reduced to 1.5 GB (2.3 GB serialized). These are insanely fast numbers given that this is scan of all outputs, and their spenders, in the confirmed chain of 950k blocks, correlated to detect spentness, and the hashing includes the hash accumulation of the entire set of unspent output scripts and values. Nothing is cached or indexed, just a very parallelized total scan.
(edited)