Turns out the message box extended the execution life of the script. In other words, the speech control will only output while the script is still being executed, so you have to program the script to check the isSpeaking property for false before exiting

. Turns out I fixed it myself. It's here for your reference if you happened to have this problem yourself:
sub Shout(theText)
Dim objTTS
Set objTTS = CreateObject("Speech.VoiceText")
objTTS.Register "", wscript.scriptname
' Shout it out.
objTTS.Speak theText, 1
while objTTS.isSpeaking ' And wait patiently for cleaning cycle to end.
wscript.sleep(500)
wend
end sub
thanx to
generation5.org for the ideas.