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 commit88087226a6) (cherry picked from commit69e6a108a5) Change-Id: I0cf1a2b7d25bc9912e03fca30621809a9071396c