VA uses the Windows speech engine to do it's thing. That is the only interaction with the recording device. In the beginning, if you unplugged your headset, VA would crash outright, as the speech engine would cause it to do so (no default device exception or whatever). Then, a try/catch was put around that exception and a message would pop up in the log that would indicate that your recording device was no longer available. You would then have to restart VA if you plugged your headset in. Well, that's ok, but it's not ideal. You find out that a lot of people actually switch recording devices while using the software (tabletop mic to headset, webcam to headset, headset to tabletop, etc). So, VA now detects if your device is detached and keeps the speech engine from blowing up until Windows says, 'hey... there's a recording device'. VA doesn't make any decisions at this point, because that device can be anything. The speech engine is then allowed to continue with the attached device (which may or may not be the same).
If the mic is dropping out and causing VA to stop responding, this is an atypical behavior and is rooted in your hardware/driver/windows configuration and is something you are going to need to work on. VoiceAttack works with what Windows is telling it to do, and is set up to, 'handle' more common anomalies and is not set up to figure out individual situations. Side note: I've used the Logitech G series headsets for development (and my son continues to use them) with VoiceAttack without issue.
There are tokens for checking the current audio devices... '{STATE_DEFAULTRECORDING}' and '{STATE_DEFAULTPLAYBACK}'. There are also actions that can be used Other > Windows > Change Default Audio Devices to change your system default devices, plus there are options in the audio tab for setting devices, *and* there are command line parameters that can be used with VA that can either affect the running instance *or* be run without VA even being launched (use with a desktop shortcut or something like Slickrun... added for my own use). So, somewhere between the tokens and the actions and command line, you should be able to drum up a solution for your situations. I'm not sure I want to add any more to this, as I think it's kind of over-engineered already for this context o_O
Hope that helps!