- Collect immutable snapshots (DecodedJSON, PayloadType) under RLock instead
of holding StoreTx pointers that could be evicted between unlock/lock
- Resolve paths outside the lock (pm and graph are read-only)
- Persist to SQLite without holding any lock (separate RW connection)
- Only take write lock for in-memory updates at the end
- Remove tautological TestNeighborPersistFileCompiles (compilation already
validates symbol accessibility)
- Remove unnecessary init() with os.MkdirAll on TempDir