I just wanted to add my name to the list of people who've had a flaky programming experience. Fortunately, the trick of either double-clicking the programming button or holding it while connecting USB worked for me (I'm not quite sure which).
For background, my Teensy is soldered into a SmartMatrix shield that I bought pre-assembled from PixelMatix (
http://docs.pixelmatix.com/SmartMatrix/). The Teensy has the VUSB trace cut and VIN is connected to the 5V power supply through a diode.
When I hit program on the Arduino UI, as I have done dozens of times before (including a couple of times tonight), it encountered a program error, and went completely unresponsive. The attached LED matrix wouldn't light up, Windows said I had connected a USB device that had malfunctioned, and the COM port no longer showed up. The only sign of life was that power LED on the RTC breakout board that was connected to the GND and 3V3 pins off the Teensyduino lit up. I tried disconnecting the power and USB, reconnecting it, reconnecting only the power without USB, hitting the program button multiple times, switching to a different USB port and nothing worked.
After futzing with the reprogram button several times, Windows no longer showed the "one of your USB devices has malfunctioned and is not recognized" error, but I still didn't see it show up as a COM port. However, I noticed that device manager was refreshing when it loaded so I dug around elsewhere and found it was showing up as an extra "HID-compliant device" under the "Human Interface Devices" tree, but Windows showed no apparent way to distinguish the 3 identically named devices.
I rebooted my computer into Linux and ran lsusb and was relieved to see that Teensyduino was listed as one of the devices. I installed Arduino and Teensyduino and successfully programmed the blink sketch and confirmed the light on the back of the Teensy was blinking. I'm not sure if booting into Linux was really necessary--maybe it would have worked if I had tried to program in Windows immediately after the Teensy showed up as a HID device.
At this point, I didn't really want to go through the trouble of installing all the dependencies for my sketch, so I booted back into Windows. The Teensy showed up again as a COM port, so I went into Arduino and re-flashed Aurora. Long story short, my LED matrix is now happily running the game of life again.