Took more finagling than expected, but seeing initial 3x to 10x speed up after refactoring the way extraction target files are opened for writing.
Will let this stew for a couple of days to collect more data before I polish it up into a PR.
Reading block "Sparkle Compile Win64":"Compiled Binaries" from temp storage (artifact: 6811319e3617c52a5b91acac 'sparkle-compile-win64' (step-output), ns: horde-artifacts, ref: step-output/sparkle-main/65160/sparkle-compile-win64/6811319e3617c52a5b91acac, local: D:\h\sparkle\Sync\Engine\Saved\BuildGraph\Sparkle Compile Win64\Manifest-Compiled Binaries.xml, blockdir: block-Compiled Binaries) Using 16 read tasks, 16 decode tasks, 16 write tasks Written 3 files (150.6mb, 39.8mb/s) Written 4 files (352.2mb, 0.5mb/s) Written 4 files (801.5mb, 111.1mb/s) Written 4 files (1583.5mb, 147.5mb/s) Written 20 files (2391.9mb, 165.6mb/s) Written 20 files (2876.8mb, 98.4mb/s) Written 22 files (2891.5mb, 98.2mb/s) Elapsed: 30s, bundle.packet_cache.hits: 424, bundle.packet_cache.misses: 69, bundle.bundle_cache.hits: 69, bundle.bundle_cache.misses: 2, backend.http.wall_time_secs: 0, backend.http.num_bytes: 0, bundle.packet_reader.num_bytes_read: 0, bundle.packet_reader.num_encoded_bytes_read: 0, bundle.packet_reader.num_decoded_bytes_read: 0