Let streamers control the ad timing
Obviously we don't want Twitch to lose money and die out like other streaming platforms. The ads are a necessary evil. Let streamers control when the ads drop during the stream. Give them a requirement for how many ads have to be run per hour, or whatever the terms are, but let them determine when they run. Bathroom & food breaks would be ideal. Some streamers find the beginning of the stream critical, so running pre-roll is a bad idea for them. If the streamer doesn't run the required number of ads, hit them where it hurts - their wallets. That's a guaranteed way to make sure enough ads are run to hit revenue targets, and the streamers can benefit from it.
Also, increase the variety of the ad pool. Nothing drives viewers crazier than seeing the same stupid ad every single time an ad rolls.
Consider a minimum viewer count/average for ad requirements. If a streamer only averages 1 viewer, they shouldn't be required to run those ads. That's unfairly squashing the competition. Wait until they get to a higher number, like 500 viewers on average (for example). Then require the ads for them.
Unlike TV where shows are cut and timed specifically to include ads at certain times, the current ad implementation is way too abrupt and often cuts you off from something potentially exciting on stream. Let the creators decide when they want ads to roll.