std::condition_variable currently waits using chrono::system_clock
which uses CLOCK_REALTIME in all cases. This behavior is virtually
never intended and has been the source of numerous user visible bugs
on Android, as Android is prone to system clock changes.
Android already has a change that converts pthread condition variable
waits from CLOCK_REALTIME to CLOCK_MONOTONIC to work around this
issue, but that still leaves a race from the point the original timeout
was calculated to when the conversion happens.
This change, paired with an accompanying libc change in Android,
creates a mechanism to always wait on CLOCK_MONOTONIC, which
completely avoids the above race.