Ah my bad, I forgot about something: The difference in expected and actual ID code explains it completely. The “STM32F103C8” chip on your board is actually a chinese fake / clone chip called the CS32F103C8T6. These clones have a different internal ID code.
This was already discussed in the PlatformIO forums – keep the board = bluepill_f103c8 and add as a new platformio.ini option the lines
upload_flags = -c set CPUTAPID 0x2ba01477
that will make openocd stop complaining about the fake chip.
Also see original thread Cannot upload to STM32 Bluepill board over STLink-V2 - #22 by John