Your solution isn’t going to hurt anything. It might be overkill, but it will definitely work.
Ultimately, I think you only really need 2 of the solutions you mentioned.
- A network wide DNS blocker, such as Pi-hole, to catch the majority of ads.
- A browser ad blocker, such as uBlock Origin, for the rest.
What do you use that allows you to set per app rules?