I don't think the DFU mode is immediately triggered before setup. I may be wrong. How do you confirm that? There are members here who reported able to use IOS/Android app NRF Toolbox to perform the DFU OTA upload without even calling the ota_bootloader_start() in sketch. I am not successful in doing that yet. Having said that, you may need to refer to "dfu_service" function on nordic SDK.