The resolveDeltas part of IndexPack is the most memory consuming part, and you didn't address it to use streaming techniques.  So thus far your change is only a partial fix to the problem.  :-)

FWIW, this is the harder part to fix.  The base object is needed during the entire chain processing.