Mmm. I think for the channels I watch for these races they pick the "preroll" option and are right to do so, because 3 mins of ads an hour would be pretty obnoxious in a 2.5h race. (For the random-settings races which can go 4 or 6 hours if the randomizer picks silly settings, there are scheduled breaks every 2 hours, which provides a point to run ads. But normal races run right through without breaks.)
I watch mostly through the Android cast-to-Chromecast client though, which might be a bit of a special case -- until very recently it didn't show ads at all, which was presumably a silly oversight on Twitch's part...