Switching to alarms and exponential backoff while polling for transcription result

This cl switches the way asynchronous transcription tasks poll for their
results.  it has been observed that sometimes the server side transcription
takes longer than expected (sometimes many minutes), so instead of blocking
a thread for all that time this cl schedules an alarm for the next time to
poll.  it also uses an exponential backoff scheme to determine the poll times
and increases the maximum total polling time from 20 seconds to 20 minutes.

Bug: 66966157
Test: manual and unit tests
PiperOrigin-RevId: 177257577
Change-Id: Ib2998f03cc418d5241ccffec71ba3945c9fe4cbc
5 files changed