The network stack HostResolver doesn't actually use its own timeout - it does retry requests (After 6 seconds and then after 18 seconds (cumulative), while not cancelling the original GetAddrInfo calls). Worth noting that GetAddrInfo can't actually be cancelled prematurely, since it's a sync API.
DNS probes for internet connectivity do use a timeout (They don't use GetAddrInfo), but we only use them after we encounter a network error, and only use them to modify the contents of error pages. They should be using a timeout retrieved from the system DNS configuration, I believe.