YouTube Vanced[1] for Android is awesome. It supports background playback and allows you to block all ads as well as community posts, surveys, premium movies, and just about anything else. They recently integrated SponsorBlock[2], which allows you to block in-video intros, outros, sponsored sections, and subscription reminders.
However it uses microG, which has long had an open issue with v2 of Google's Cast API. The issue was recently closed however I don't believe it was solved. However it is still possible to work around this. I ended up writing a quick script on my phone that uses pychromecast to initialize the cast so that it can be passed off to YouTube Vanced.
It's been a while since I've cast anything but are you certain that ads are blocked when casting from an app that blocks ads? In my experience with casting, the video is always streamed directly from the content provider's servers (YouTube) to the cast receiver (smart TV) with ads intact. You would need to mirror your phone's display in order to block ads.
[1]: https://vancedapp.com
[2]: https://sponsor.ajay.app
[3]: https://github.com/microg/GmsCore/issues/79