RingStatePollingConfig
When the caller falls back to reading the ring state instead of waiting for it.
Polling is switched off by passing a null config, never by zeroing a timing: every value here must be usable, and a non-positive one is rejected rather than quietly disabling the fallback.
Parameters
how long a ring must go without a participant's ring status changing before polling begins. This is the trade the whole fallback turns on: a shorter quiet period recovers a dropped outcome sooner, and also makes rings whose callee is merely slow to answer pay for a read they did not need. The default is tuned for the first, because a caller stuck on a ringing screen is a visible failure and an extra read is not.
the gap between reads once polling has begun. Measured from the end of one read to the start of the next, so a slow read widens the gap rather than being absorbed by it.