Flakiness is usually a locator problem
Most intermittent failures are not timing bugs, they are identity bugs: the locator matched a different element, or matched nothing while the DOM was still settling. Playwright locators are lazy — they resolve at the moment of the action and retry until the element is actionable — so a well written locator removes the majority of waits from a suite.