So in your case it was to do with HID. It is possible there's some issue with the firmware not completely removing the HID service, but more likely what happens is:
Windows 'claims' the HID device because it thinks it is a keyboard. It then stays connected, and Bangle.js can't remove the HID service because a device is connected to it, and it doesn't disconnect either. The two-button reset does a proper reset and kills the connection, allowing it to come up without HID.
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
Ok, great! Thanks for the update!
So in your case it was to do with HID. It is possible there's some issue with the firmware not completely removing the HID service, but more likely what happens is:
Windows 'claims' the HID device because it thinks it is a keyboard. It then stays connected, and Bangle.js can't remove the HID service because a device is connected to it, and it doesn't disconnect either. The two-button reset does a proper reset and kills the connection, allowing it to come up without HID.