loadCheckpoint

Load the checkpoint (state + cursor) as ONE consistent snapshot. Reads both keys from a single DataStore emission, so the returned pair can never be torn across a concurrent write. Returns null if EITHER half is missing or the state fails to deserialize — callers then fall back to genesis rather than resuming on a half-checkpoint. The returned DustCheckpoint.state is owned by the caller and must be closed.