sometimes (dunno, but it does on mine) the unit will stay alive even if it's health slider is set to minimum. To make sure the unit is without a doubt dead, you can put this into it's initialization field:
This SetDammage 1
It'll set the unit ("this" refers to the unit that the field belongs to) 's health/armor damage to 100% (hence the 1)
Also, for the group problem... give each unit a seperate name (unia, unib, unic, etc) and then have a trigger "groupdead" or something, which has conditions "not (alive unia) and not (alive unib) etc.... there's likely faster or cleaner ways to do this, mind. Then have it set a value such as "groupdead"; then the conditions for the helicopter to wait to be "not groupdead" and the other conditions.