Phase 5 Task 2. On a serve-only node (Part A marker CONFIG_PATH/cluster/serve_only),
the Go agent registers a loopback stream's node-local relay URL with the puller
and the daemon pulls it. startMonitor now, before the supervise/PHP paths,
returns MONITOR_FANOUT for a loopback stream (parent_id > 0) on such a node, so
cron:streams never spawns a PHP MonitorCommand/LoopbackCommand for it — otherwise
the daemon would be double-fed (PHP push + puller pull). nodeServeOnly() reads
the marker; a normal node is unaffected (the gate is behind nodeServeOnly).