Alright, so the FTDI connection just doesn’t work right now. I’m not sure what’s wrong, but maybe it will come to me in a dream :). I discovered I can upload the sketches directly with my USBtinyISP, but there’s a catch: the IDE complains about “no serial port” unless I have the FTDI cable connected, even though it’s using the ISP to upload!
I uploaded the “Blink” example, and Arduino Digital 13 (pin 17 on my ATmega328 TQFP) pulses high and low like it’s supposed to! I found a forum entry that suggests I have the TX and RX connections reversed, but that’s for another day. For now, I’m happy that the IDE lets me use my USBtinyISP directly and that my AVR is, in fact, not dead (as I feared).