Also (nearly) every command in Cypress is a promise which allows you to make them then-able. [2]
I don't agree with using Cucumber for anything. The way most teams implement Cucumber makes it such a pain to write a test. I do like the suggestion of puppeteer tho. If you haven't heard of playwright [3] I'd look into that. From the same creator as puppeteer but was hired to work on playwright full time. They have the advantage of being to test on gecko, chromium, and webkit browsers which is really nice because IME anything Apple becomes such a pain to setup to properly test.
[1] https://docs.cypress.io/api/utilities/promise.html#Syntax
Agree with everything else though + the one time I opened an issue in their tracker (I asked a question about a crash in order to contribute!) they totally ignored me and then they opened a bunch of issues in projects I maintain and they use (not paying me, which is fair). Guess how much love I gave their issues?