feat(activity_sm): K=2 hysteresis on facet-gone and type-change ends + change reason in events
Apply K=2 hysteresis to facet-gone and type-change activity ends while leaving idle and gap endings immediate.
Motivated by the 4/16 backfill investigation: about 50-60% of ends came from ended_facet_gone and about 30% from ended_type_change, mostly single-segment wobbles.
Persist pending counters through the existing awareness snapshot and add change to activity.detected/activity.persisted JSONL events for end-reason observability.