Persists a snapshot. Retries always reuse the closure that was current when the snapshot was taken.
Identity of the save target (e.g. a noteId). Pending changes never cross a key change.
Snapshots the live state that should be saved. May refuse by returning a value commit treats as a no-op.
Binds pending changes to the target they belong to (see #9614).
A change scheduled while one binding is active is always snapshotted (via SpacedUpdateBinding.prepare) before the binding can be swapped to a different key, and the snapshot is committed together with the
commitclosure that was current when it was taken. This makes it impossible for a pending change to be persisted under a different target than the one it was made against, no matter when the save fires.