От консольного окна можно избавиться запуская скрипт с помощью wscript:
wscript <имя скрипта>
Консольное окно от taskkill можно скрыть запуская команду так:
oShell.Run "taskkill /im update_notepad.exe", 1, True
На счет ожидания: метод Run объекта WScript.Shell возвращает код возврата запускаемого приложения.
Если taskkill умеет сам сигнализировать о проделанной работе, то можно в цикле вызывать taskkill и анализировать код возврата, до тех пор пока по коду не станет ясно, что процесс удален.
Вам нужно самому выяснить коды возврата taskkill, сделать это можно с помощью простого батника, анализируя errorlevel после вызова taskkill. В документации я нигде кодов возврата taskkill не встречал.
Если же taskkill не использует коды возврата (многие стандартные виндовые утилиты пренебрегают этим средством), то задача усложняется.
Один из вариантов - анализировать вывод taskkill, с помощью find или findstr и ловить их код возврата (эти утилиты точно сообщают в коде возврата, что строка найдена или не найдена).
Другой вариант - сначала выяснить с помощью tasklist запущен ли ваш процесс и только потом вызывать taskkill.
И не забывайте делать паузы между вызовами taskkill, т.к. эта карусель без пауз отожрет у вас изрядно процессорного времени.