Q1: Если приложение завершилось, а его баннер висит, что произойдет?
Ничего. Рано или поздно он исчезнет - по щелчку или по таймауту (в зависимости от того, что было указано при его создании)
Q2: Может ли программы A вмешаться в баннеры программы B?
Вроде, нет. Хотя, глядеть надо.
Как происходит взаимодействие программ с баннерами?
Через API, dll (через очереди).
По поводу PIPE'ов. Идея труб в данном случае кажется мне не очень
удачной, а потому баннерная система управляется не через них, а через
очереди. Почему - читайте в моей статье по организации взаимодействия
между процессами, которая в ближайшее время будет опубликована на сайте.