Guarantees that timeouts are only delivered if a network never becomes available. Once a network is available the timeout is canceled. Bug: 31402633 Test: all timeout related unit tests pass (new one added) (cherry picked from commit5eba9d7061) (cherry picked from commit3fb372fe9f) Change-Id: I0cf1a2b7d25bc9912e03fca30621809a9071396c