I had this same issue. It was strange because micropython was already on the device so I could connect with putty and interact with micropython, proof that both the RX/TX lines were working.
I then held down the boot button while plugin, and was able to reflash the device. I think that somehow my code was preventing it from working correctly as after the first time of reflashing, I no longer had to hold down the button to reflash.
Uploading firmware and MicroPyhton REPL communication uses the USB port, not the UART interface. And you do not neet to push the boot button for firmware uploading because esptool.py switches the board itself to boot mode.
I do not know an answer to the problem of @nefarious. I rarely use the Arduino environment. From the log, the board switches properly to boot loader mode, but then no software is uploaded, Could be a configuration issue with Arduino and the OS.
I have been working with this device for a while without issue and had put it aside for a month. I pull it back out and now I hit this same exact issue. Hold the boot was plugging it in allowed a once time upload but when it was done it failed to reconnect.
Workaround is to set the upload speed to 115200 (default is 921600). This seems to allow normal operation again.
What I suspect has happened is that the serial driver was updated/patched/replaced in Windows causing some incompatibility (a lot of security fixes and patches in the last few weeks from PC maker and Microsoft).