Investigation: the wave-3 [llm] telemetry warns weren't firing on live because the fetch had no client-side timeout. When demo's llm-integration-service was slow/stuck, fetch hung indefinitely past the test's 12s wait, so the fallback path never ran and the user saw no agent reply at all. Add a 12s AbortController-backed deadline. On timeout: console.warn '[llm] gateway timed out after Xms (deadline 12000ms)' + return the graceful 'temporarily unavailable' fallback that renders the tool menu in the chat surface. Uses AbortSignal.any when available to preserve any caller-supplied signal.