(2) метод Sleep() не принадлежит объекту Shell, он принадлежит WScript. или оборачивай через выполнение скрипт-файла, или вот здесь есть жутко извратный способ получения именно WScript от Абрахамса:
v8: Аналог Sleep()
но лучше всего всё-таки дюнаврап
Wrapper=Новый ComОбъект("DynamicWrapper");
Wrapper.Register("KERNEL32.DLL","Sleep","i=l","f=s");
Wrapper.Sleep(мсек);