- [2-1] executePersistent: add defer sess.mu.Unlock() so all return paths
release the session mutex. Remove explicit unlock calls.
- [2-2] Protect c.sessions map access in Execute with c.mu. Replace
c.Stop() in timeout/cancel path with per-session close/kill/delete so
only the affected profile session is cleaned up.
- [2-3] Add TestCLIExecutePersistentConsecutiveExecutes to verify the
same persistent profile can be executed consecutively without blocking.
Apply gofmt to all adapter files.