Empty assistant stops were reparented off the active leaf in memory only. The session loader rebuilds the active branch from the last physical journal entry, so a capped empty stop (or one killed mid-retry) resurfaced as the active leaf on reload. Added SessionManager.dropLeafEntry to physically remove the entry and rewrite the file, and route every empty-stop discard through it.
Fixes#5179