Короче.
Создавай юнита не через kv, а через lua
Получается "OnCast" (или как там, после каста) делаешь ранскрипт
потом в луа скрипте ориентировочно:
caster.patronus = CreateUnit(patronus)
а потом запускаешь таймер (где то 0.1) на проверку ченнелится или нет
и убиваешь caster.patronus
Это точно рабочий вариант, просто лень искать все это
Можешь сделать кастер глобалкой даже, так будет лучше