Once sleep paces the VM thread, the main-thread compositor's SnapshotVisibleObjects truly overlaps VM-thread _objects/_registry writes. GetOrCreate/Register/Release were unlocked -> 'Destination array is not long enough' under concurrent enumeration. _lock is re-entrant so BindDraw/EraseRange (already locked) stay correct. 52 green. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>