OK, thanks to all your input, I've found the problem.
Power was, indeed, leaking back through the 10K pullups on the I2C pins. When I turned on the radio, code deep down in the library configured those pins to be I2C instead of GPIO. When I turned the radio off, those pins remained as I2C. Thus, my setting the GPIO to low outputs had no effect.
Thank you all for your advice!