Device that uses a USB port for application downloads in an application/executive model -- what class should it be?
A device that upon reset starts as DFU, then after while it disconnects and connects back again as VCP. Or you could make a your command that brings the device from VCP to DFU mode.

Such device exists, an Arduino clone on STM32. link: https://github.com/rogerclarkmelbourne/Arduino_STM32