It doesn't sound like Ryan has any control over how the device itself works. That is, as long as it has power, it can change the contents of the "disk" any time it wants to, no matter what the current USB connection state is (e.g., it probably won't pay any attention to a simulated ejection state). If the device manufacturer is even remotely aware of how mass storage devices are supposed to work, the device will use some kind of mutex-like protocol to manage the potential conflicts (which could be something like the SCSI Start Unit and Stop Unit commands).
If it doesn't have anything like that, I'd find another device. If you can't do that, your only option is to try and manage it from the OS side, which may or may not work very well (I would never completely trust it).
Just as a point of reference (expanding on Barry's idea of simulating ejected media), look at how floppy drives work. The floppy drive hardware can't automatically detect when the media has changed, but the OS needs to know (for caching/buffering purposes, among other things). When the OS needs to read or write from the floppy drive, it asks the low-level driver whether or not the media has changed, to which it can respond in one of three ways: , "Yes", "No", or "I Don't Know". A floppy drive will never respond with "Yes" (and a fixed hard drive will always respond with "No"). The rule of thumb for floppy drives is that if the disk hasn't been accessed for more than two seconds, respond with "I Don't Know" and let the OS figure it out (compare Volume Labels, Volume Serial Numbers, etc.). If it's been less than two seconds since the last access (theoretically too short of time to physically change the media in a floppy drive), respond with "No" and the OS can assume nothing has changed.
You'll need to do something similar, except the timeout will be zero seconds instead of two and the answer will always need to be "Yes" instead of "I Don't Know". This will slow down your access a lot, and even then, you're still not going to be guaranteed 100% data viability (if the device can really change any part of the data any time it wants to).