Narrow active-element preservation semantics
Allow active elements and their ancestors to be moved or replaced while still skipping direct updates/replacement/removal of the active node itself when preserveActiveElement is enabled. Keep focused tests and docs aligned with the new behavior.