Future has a `Get(Duration)` method which allows us to wait synchronously until a timeout. Adding a timeout to the constructor allows the Future to time out asynchronously. PiperOrigin-RevId: 516982717
PiperOrigin-RevId: 501392167
PiperOrigin-RevId: 500023196
PiperOrigin-RevId: 425434260