The core issue is that an Upload or Debug erases the board but does not write back the SoftDevice / Bootloader. If I burn the bootloader first, then Upload or Debug it works but uploading a second time deletes the Bootloader.
Can be replicated by using the Nordic nRF52840-DK board and the Adafruit BSP, loading a simple blink sketch to main.c.
I am running the Bluefruit Bluetooth library so need the board = nrf52840_dk_adafruit.
Maybe related to this issue, #147
[env:nrf52840_dk]
platform = nordicnrf52
; board = nrf52840_dk
board = nrf52840_dk_adafruit
framework = arduino

Only the board = nrf52840_dk_adafruit displays the Burn Bootloader option.

It the device has had the Burn Bootloader command run before Upload, it works correctly. SoftDevice showing in blue.

Clicking Upload again (or Debug) erases the SoftDevice.
