awaitUntil
suspend fun awaitUntil(description: String, timeout: Duration = timeouts.wait, pollInterval: Duration = timeouts.pollInterval, observe: suspend () -> String? = { null }, condition: suspend () -> Boolean)(source)
Host-side polling for conditions the driver cannot evaluate in one command (cross-device, backend state). Prefer App.await / Screen.await for UI conditions: they poll on the device in one RPC. Uses delay, so test-root cancellation and sibling failure cancel the poll promptly. Admitted like any command, so detachAndReport waits for an in-flight poll and rejects new polls once close starts; the condition runs inside the admission (reentrant), so device helpers called from it do not deadlock.