Bootloader Mode and Download Mode

It seems I can only program the chip in BOOTLOADER mode, surely this is not right.

Firstly let me say I am a firmware engineer of 20+ years. My initial impressions of trying to flash the XIAO are not good, I have no problems flashing other microcontrollers using Arduino Studio. The XIAO came preprogrammed with the 1 second blink sketch (solid green LED and 1Hz flashing yellow LED). I modified the sketch to blink at 5 seconds and tried to upload it, it compiled slowly and then sat there for about 5 minutes saying “uploading…” and then failed giving me the message

Arduino: 1.8.13 (Windows 10), Board: “Seeeduino XIAO, Arduino, Off”
Sketch uses 34108 bytes (13%) of program storage space. Maximum is 262144 bytes.
An error occurred while uploading the sketch

I checked my COM ports and all was good. It was shown in Windows 10 to be on COM14. After verifying ports, I swapped COM ports and swapped out cables. An hour later nothing. It really shouldn’t be that hard.

I read a post and double tapped the RST and immediately noticed my COM14 port disappear and COM15 appeared. The green LED was still solid but the yellow LED faded in and out. I tried to flash it again and it seemed to have flashed correctly. My COM15 port vanished an COM14 port came back? this is not what I have seen online, people just seem to plug it in and flash it without double resetting and messing with COM ports.

I tried loading the CircuitPython bootloader, it worked once and then seem to revert back to the old bootloader. It seems there is a distinct lack of support here.