Yeah, I was uncertain about that. Given that the timeout shouldn't actually occur under normal operation, it is a bit exceptional, and it's awfully nice having it able to throw from inside the std::min like that.

Certainly a third option is to just return the appropriate negative value. If we have to check it anyway, that's easier than making up a magic status code for "expired".