Just a quick thought… if you erase the STM32 and program the bootloader only, the LED should blink YELLOW. I don’t even see any code that would make it blink CYAN https://github.com/spark/bootloader/blob/master/src/main.c There are some other colors that it could blink, but not likely by default right after programming a blank chip. I would track this down before trying to debug anything else, and it just complicates the process. You won’t be able to rely on the debugging status of the LED to tell you what mode the Spark thinks it’s in.
My internet is being super slow right now so I can’t find where the LED pins are defined in the bootloader. Or where hw_config.h is.