DO NOT MERGE: [CS] Remove timeout event after first available

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 commit 681fcda5896fd6c94f8a543ef9983c0a0644e87e)

(cherry picked from commit bf3b1bad15f45033d409669ac20e4b4e597065fd)

Change-Id: I0cf1a2b7d25bc9912e03fca30621809a9071396c
2 files changed