Xiao esp32c3 won't upload programs unless I'm in bootloader mode

Simple, but dumb suggestion here, while I’m waiting on delivery of one of these, I’ve noted that often when I’ve found myself unable to push code without resetting to DFU mode, it’s my own stupid fault, and is caused by my having deployed software to the board that doesn’t allow the processor to go into AND OUT OF the default loop() often enough.
Try deploying the simplest blinky code to the processor, and see if this clears the problem - if so, you’ve got a hang or infinite loop in your code, and that’s preventing it from getting to the “do I have a request for update” section of the onboard code.