It requires a certain amount of setup, but it's actually easier to do with HLS than a classic MPEG stream because it's already broken up into blocks. Trying to dynamically reassemble an MPEG stream would be possible but annoying. And then there's the issue that inserting ads into the video puts them in the "timeline": if you rewound, you'd see the ad again.
It’s not hard for Google’s level of resources: they would need to index where the blocks in each encoding are so they could switch to serving as content at that point but they wouldn’t need to recompress the videos, just identify where to splice in the ads. I suspect that’s the next step here since it would be a significant increase in the level of effort required for ad blockers.
Can you do overlays with dynamic ads at scale? I'd think that would be costly.