What you're describing is mentioned here in the Cypress documentation.
Cypress documentation also mentiones some workarounds. I think the bottom line for you is this part:
A common use case for this is Single sign-on (SSO). In that situation you may POST to a different server and are redirected elsewhere (typically with the session token in the URL).
If that’s the case, you can still test this behavior with cy.request(). cy.request() is NOT bound to CORS or same-origin policy.
In fact we can likely bypass the initial visit altogether and POST directly to your SSO server.
You usually don't want to test a SSO page, your goal is to just sign in. Therefore, you don't need to go to this SSO page and fill in a form there. That's the idea behind what Cypress says in the documentation.
If this doesn't work for you, then Cypress is probably not a good choice for you. It seems you have the choicea chance to choose whatever tool you want, then why force it and use Cypress? Perhaps sticking to Webdriver.io is the way forward.