Cypress aims to be as deterministic as possible. You can write tests that wait for a specific xhr request or even mock them. The combination of that and the promise based API makes it much more reliable than selenium.
In practice, I have had much less flakiness in my Cypress tests than with selenium or other webdriver API.