CI should be fast, and give actionable feedback to its audience: the Developers. Whatever system delivers this is fine.
CD should be predictable and reliable. Its goal is to deploy code/assets to a pre-production server so business can validate the feature changes. Again, whatever system does this is fine.
Logically a single CICD system would be simpler. The part about "failure can happen in AWS CP which is not reflected in the triggering workflow" makes me nervous. I'd expect a CI to be "smarter" than CD, so a deploy-time error should show up sooner, in CI, vs after the handoff.
The overall goal of any pipeline -- including CICD -- is to optimize fast, high-quality, reliable changes to create business value. Generally, getting code features into production so real users can see them.
The specific quality/ scope/ speed/ cost/ complexity tradeoffs vary per company and per team. That's fine.
Response to Is it ever a good idea to split CI and CD across two providers?
on Reddit