The overlay binds its Escape handler in a passive effect keyed on the failed state, which can
flush after "Installation failed" is already painted. The test pressed Escape once right after
findByText, so on a loaded runner the key landed before the listener existed and the overlay
(correctly) stayed up for the whole waitFor. Proof: delaying the listener by 80 ms reproduces the
CI red on the old test and passes the new one.