I don't know of any way to create and post roXXXEvents, but I've accomplished something similar by implementing an event queue array and a custom GetMessage() method that first checks the event queue array, then the message port. You can create a BrightScript "object" that looks just like an event (with the exception of Type() checking), so you should be able to get there with minimal changes to your Wait loop.
My Channels: http://roku.permanence.com - Twitter: @TheEndlessDev
Instant Watch Browser (NetflixIWB), Aquarium Screensaver (AQUARIUM), Clever Clocks Screensaver (CLEVERCLOCKS), iTunes Podcasts (ITPC), My Channels (MYCHANNELS)