Teensy 2.0 has 2 different resets. The normal reset causes your program (at location zero) to run. The bootloader reset causes the bootloader (near the end of flash memory) to run.
Power on reset is always a normal reset.
A low-to-high transition on the reset pin, caused by either the pushbutton or an external signal, defaults to a bootloader reset. The voltage on the HWB pin determines if the reset pin causes a normal reset (HWB high) or bootloader reset (HWB low). On both Teensy 2.0 and Teensy++ 2.0, the HWB pin is connected through a 1K resistor to ground, causing the default reset pin behavior to reset to the bootloader.
If you want to control which type of reset the low-to-high transition on the physical reset pin causes, you'll need to control the HWB pin. On Teensy++ 2.0, it's the ALE pin which is easy to access. On Teensy 2.0, it's not brought out to a pad (there simply isn't any more room on the board), but if you're good with tiny soldering, you could connect a wire to the pin or to the 1K resistor.
You could also leave HWB low (the 1K resistor) and use another Teensy running the rebootor program to pulse the reset pin, and then a modified version of the command line loader to send the command to run the user program. In terms of reliability, that solution depends heavily on how reliable you USB host system might be. Teensy 2.0 is very reliable as-is, so building a complex system may or may not actually make an improvement.
Another possible approach you might use would be startup code on Teensy which uses analogRead() on a resistor divide of the power supply, and of course the internal reference, to tell when the voltage is at least 3.0 volts.