Well ... I just tried it. I replaced my /pleasedonotcrash/; before the DoEvents() call with Win32::GUI::PeekMessage (0, 0, 0); and guess what ... it crashes.
Like I said, there IS a bug in the xs somewhere and when the circumstances are right (nah ... wrong!) then it will crash the script and tear the interpreter along with it. What exactly triggers this to happen, I can not say - consequently, I can not say for sure what will prevent it. I can give you my script, all you need to do is click on File, Save and baboom. Oh, btw, I use Perl 618 and GUI 558 under Win2k. I'm gonna try to run it under different OSses and Perl versions, but that is still only serving to record the history and add to the confusion and will not reveal what's going wrong and where.