cardOrNull
The card if it arrives within timeoutMs, else null — for listing agents at the start of a turn without waiting on one that is unreachable. The fetch keeps going in the background, so a slow agent's card is ready next time; an agent that failed is not asked again for retryAfterMs. Unlike wrapping card in a timeout, this returns on time even while the HTTP client is stuck in a blocking connect.