Asynchronously prune checkpoints for the given threads.
See prune for the full DeltaChannel caveat. In short:
"keep_latest" must not drop ancestor checkpoints / writes that
sit between the kept checkpoint and the nearest _DeltaSnapshot
ancestor, or delta channels will silently reconstruct as empty.