ADR-038 own-perspective status heartbeat for a sim.
Each sim instance reports its OWN view of the world - which RBC sites it
is currently connected to, plus a few caller-supplied extras - once at
startup and then every PERIOD_S seconds. Each report is BOTH logged
locally (so `each sim shows connection statuses from own perspective`,
ADR-038) AND pushed to both sites over the sim's existing dual-homed
link as an opaque RBC_MSG_SIM_STATUS envelope frame; the owning Role C
gateway (train/il/ctc handler) recognises that kind, does NOT forward it
to A/B, and republishes the ASCII payload to the C-side status broker.
Kind-blind by construction: the caller owns what the payload keys mean;
this module only handles the cadence, the log line and the send. Mirrors
rbc_wire.encode_opaque()'s own transport-vs-application split.