Ahh, that's it! Thanks! To anyone who might read this, here's a more in-depth explanation:

Within my detection program, a routine is called whenever a new USB device is detected. In that code, I first check to see if the application to launch is present using Dir$ (pathToApp) (after all, it could be a different drive than the one expected). If it's indeed available, I call it using Shell. However, that call to Dir$ () kept a pointer of sort to the USB drive, which prevented it's removal. As a fix, once the app is launched properly, I do a simple call to Dir$ ("C:\").

I guess I've done everything I wanted with this topic. Resolved!