This issue needs assistance from Motorola folks. Lets wait to hear from them.
I would suggest that you really want to be running on a device if possible. Emulators become less and less useful the more hardware features you use in your app. You also want to be sure you are not building an app that works great in the emulator, but not so great on a real device with limited resources, sometimes goes to sleep, loses connectivity, has a small touch screen vs a mouse, limited keyboard, etc.
During the development process, many developers will deploy to an actual device sitting in a cradle, and maybe use something like mymobiler or activesync remote control to interact with the device from the PC if that is desired. But again, you want to try to run the app on the real device in a more real situation (disconnected from a PC) every now and then to be sure the usability and error recovery in a real world environment are as needed.
1. I found this, and it seems to work. It will tell you if the debugger is attached. If(System.Diagnostics.Debugger.IsAttached) ...
2. Detecting whether you are on a device might be easiest by just looking to see if the \application folder exists. All Symbol based WM and CE (MCXXXX) devices will have this folder. Or you could do the below. There is also an example of this in the EMDK Sample app VB_SysInfoSample1.
3. That seems like the one that would match the device the closest.