I was testing some 2 minute ads on one of our streams and noticed the TargetSpot ads that
are played over our ads were playing a few seconds longer, so the ad we placed after the
TargetSpot 2 min advert didn't play from the start, it continued from where the TargetSpot
ad left off. In some cases our ad plays for a few seconds before the TargetSpot ads kick in.

crossfading could impact the ad overlay on your stream as i'm sure the overlay ad will not be crossfaded in or out.

that said, maybe keep the same 2 min filler, and fade it in and fade it out the same amount as your crossfade time. you'll probably have to experiment with different fades, making sure the advert stays exactly 2min.

i think the actual ad "trigger" event is when the source sends the title update (containing Advert: - Advert:) to the dnas. the dnas responds to this by inserting the ad stream into specific listener streams (send buffers?) - so there's some timing that must occur for that to be seamless and in synch.