In some edge case where right after we start `build_async` on the memory
merkle subtrees, if the program panics, then the order of drop could be
that we drop the `initial_memory` buffers on the default stream first,
while the `build_async` kernels are still running and using those
buffers. This leads to a deadloop. I fixed it by just forcing the drop
to drop subtrees first (which should sync their special streams) before
dropping `initial_memory`.
compare:
https://github.com/axiom-crypto/openvm-reth-benchmark/actions/runs/18733111153