Flashed a bootloader to a 1.1.4 board and everything works fine.
Brought a spare stock 1.1.5 board over to the house to connect directly to the PC, I could repeatedly flash different firmware to the board using Arduino.
Did PlatformIO:Build in VSCode and the firmware flashed, but it is now no longer possible to flash firmware and both VSCode and Arduino report not in sync errors.
So it definitely seems that firmware built with VSCode kills the bootloader supplied on 1.1.5 boards but firmware built with Arduino does not.
Bootloader issue revisited
Flashed a bootloader to a 1.1.4 board and everything works fine.
Brought a spare stock 1.1.5 board over to the house to connect directly to the PC, I could repeatedly flash different firmware to the board using Arduino.
Did PlatformIO:Build in VSCode and the firmware flashed, but it is now no longer possible to flash firmware and both VSCode and Arduino report not in sync errors.
So it definitely seems that firmware built with VSCode kills the bootloader supplied on 1.1.5 boards but firmware built with Arduino does not.
This is definitely not an Octoprint issue.