v0.3.3 — Auto-discover followers work reliably
Fix: auto-discover followers advertise on leader PREPARING
Previously an auto-discover follower (sf.FollowerRole() with no session_id) stayed invisible on mDNS until the leader reached status=recording. By then the leader had already run _distribute_config_to_followers against an empty peer list — config POSTs never arrived at the follower.
The follower now splits its wait into two phases:
wait_for_observation(any status) — sets_observed_leaderand starts the follower's own advertiser the moment a leader announcespreparing. From this point on the follower is visible to the leader's viewer cluster panel and to the leader's distribute sweep.wait_for_recording(as before) — unblocksstart()once the leader actually begins recording.
SessionBrowser gains wait_for_observation as the corresponding public wait helper.
examples/multihost_lab/follower.py reverts to sf.FollowerRole() (no session_id) now that auto-discover works reliably on real 2-host LAN setups.