awaitBudget

How long the suite waits for an expected event before failing with what it saw — virtual time, null to wait unbounded.

Virtual is the point: a binding whose source runs on the test scheduler takes an identical trajectory on every run, so a bound over it is deterministic, while a wall-clock bound would assert "this box is fast", which is false exactly when it is busy (#1739 / #1891).

Override to null if your harness does real I/O. A source backed by a real socket or a real radio does not advance the virtual clock, so runTest fast-forwards the whole budget while the packet is still in flight and a working backend fails — kuilt #2069 / #2115. Such a harness takes runTest's own TEST_WEDGE_BACKSTOP as its backstop, losing the named failure, which is the honest trade.

That trade is sound for waits that end when the thing arrives — the backstop still bounds them. It is not sound for the one wait that ends only when nothing arrives, so setting this to null does not silently shorten that wait to zero: it makes awaitQuiescence fail until you override it. See that hook.