You can't "hose" the Teensy 2.0 halfkay bootloader by merely uploading. The chip implements a hardware-level lock which absolutely prevents any code from being about to erase or write the bootloader portion of the flash memory. Even the bootloader can't alter itself (yes, PJRC has carefully tested this). Losing the bootloader by executing uploaded code simply isn't possible, no matter what bytes you upload, no matter what code you run.
However, you can very easily cause the USB port to do wrong things if you edit the USB code, and even crash the USB drivers in some versions of Windows. That's what the
recovery process on the troubleshooting page (where you hold the button while plugging in the cable) recommends starting a cold reboot of your computer.
You're mistaken in this assumption. The hardware simply doesn't work that way. The hardware lock prevents any alteration of the bootloader. The only way to "hose" the bootloader involves connecting an AVR ISP programmer, or physical damage to the hardware.
Of course, if you have a counterfeit Teensy, all bets are off. Most counterfeits probably are indeed quite fragile.
Thank you, Paul for your customary thorough and helpful response. I believe I do NOT have a counterfeit Teensy, since the layout around the crystal and pushbutton match your genuine photos. However with your answer, I now understand what may have happened.
I *was* indeed using the AVR-ISP programmer and did so out of simplicity, although I now understand this may not have been a good idea. I'm working on a rather large project which uses an ESP32 as the main processor and the decision to use a (second) 32U4 was a trial. After reviewing the ESP32's timers, I thought they were inferior to the 32U4 for my needs. I'm trying to pull off Ultrasonic Flow Measurement where I need a 1Mhz clock to ping the sender, read the receiver, then switch the two around and repeat the readings. I decided even though the ESP32 has that second processor, it still lacks the timer set I need and the A2D isn't that great either. So I have set up Timer0 as the 1Mhz PING clock and Timer 4 as the timing clock. Cool, that all worked. When I uploaded my code with interrupts on Timer4's transitions, (AVR-ISP) is when I hosed the bootloader. I dug this Teensy out of a parts box and I now remember this is not the first time this has happened because the board has a 10K pullup on D5, so it may even have had a Leonardo bootloader in it already.
I wasn't aware that even the HEX files are guarded, which is why I asked the question. This produced some insulting answers from two other users. The first one asked if I looked at the Troubleshooting Page and then "defragster" comes on and gives me a lesson in semantics. In hindsight, I could have played nicer but it's frustrating when the Forum Users don't even ask "what technical questions does this guy have" instead of taking apart my OP in "Law School" fashion. The only user (besides you) that understood my frustration is "WMXZ".
If you'd like me to confirm, please post the HEX file you uploaded and I'll program it here to a Teensy 2.0.
I appreciate the offer but I now understand the problem and how I created it.
No. To directly answer your question, PJRC does not provide the bootloader HEX file. The answer is no.
I realize that there are sleazeballs out there that would attempt to dissassemble your HEX file to imitate it. I assure you that was never my intent, so if your answer is a flat "NO", then I accept that and will just dump a Leonardo into it since this might not be the last time it happens.
I regret that it's taken over a dozen messages to get you this simple answer, but this is a weekend, and also Christmas Eve.