At a whim, I decided to replace my USB-serial interface, and changed from my "USB BUB II" (using a FTDI 1131) to a no-name CP2102 I bought off eBay. And presto, esptool flashed on the first try.
Here's a summary of the actual connections made for flashing:
- USB module Tx --> URXD
- USB module Rx --> UTXD
- USB module ground --> GND
- external 3.3V power supply --> VCC
- GPIO2 --> VCC
- GPIO0 --> GND
- CH_PD --> 1K --> VCC
- RST --> 1K --> VCC
I'm posting this so others may benefit. If someone happens to have an idea why one serial module won't work and another would, let me know.