Start the embedded server and register mDNS. No-op if already running; rethrows bind failures. Synchronized with stop so concurrent start/stop can't orphan a bound server.