I am truly so embarassed with myself. I had uploaded code using a certain USB cable earlier in the day, and this cable works with transmitting data from my phone to my computer so I assumed it was fine.
I’ve just switched the USB cable and everything works perfectly now. The double reset tap boots into bootloader mode, and I can upload code again. Forgot the first step of debugging: try a different cable. Something must be wrong with the first cable, as it recognizes the XIAO in device manager, but cannot transmit serial data to it.
Thank you both very much for your effort in solving this. I have spent 8 hours of my day working on fixing this, and my idiocy will forever live on this forum. You live and you learn LOL.