I guess it is almost ready for production, except that I don't really know how it will interact with the idle timeouts. Maybe you can let me know how that goes. In the mean time I'll look at the code again to see if I can wrap my brain around their relationship. (Men always have a hard time doing this)...
For the final version I'll have to put something in the options that lets you choose the amount of time between "checks". If you set it to 0 it won't do checks, so users with regular wired mics or who otherwise don't have this problem won't have to incur the extra overhead (which is admittedly quite small -but still)
if you set this value to 20 it will do a check every 20 seconds to see how long it has been since the last mic event. If it has been more than 5 seconds it will attempt to reset the mic.
this is what "the second modified vox exe" is doing now, but without the option so it is hard wired to 20 seconds.
it is also detecting any device change events, so if you plug / unplug any usb devices etc, it will (well should) check the mic status and reset if necessary even if the timer is not active.
The only other issue right now is that when I tried to sleep / wake with this version of Vox running, Vox was frozen after wake and I had to kill the process. So I have to look into this some more. It might just have been a freak thing, or it might be from trying to access the mic before the computer is fully awake.
Thanks for you help enthusiasm and patience Marcel. This will no doubt benefit other users down the road.