I guess this issue should be nothing with the Cy_BLE_HostRegisteredCallback, as you mentioned the device can never get start advertising. The BLE stack is possibly updated incorrectly.
Did you develop your OTA project based on app0/app1 from CE220960 directly?
If yes, please note the BLE component must run on the same CPU core for the stack(app1) and user application(app2) projects. The whole BLE stack runs only on cm0+ in app1 of CE220960 by default, you have to modify it to adapt to both cores to get consistent with user application.
I have configured the two ble componet to be dual core, and i have followed the appendix A in CE220960 on how to configure the stack and application for dual core mode.
I have found a solution for my problem though. The solution i ended up using until such a time that the true error is located is:
1. In the stack application i create a function called BLE_BUG_FIX_RegisterAppHostCallback all it is doing is calling a function:
void BLE_BUG_FIX_RegisterAppHostCallback(cy_ble_app_notify_callback_t callback)
2. I add the function to the symole file, and in the bootload_cm4.ld so the function is not removed by the complier and so the profile application can call it.
3. In the profile application i can now call the BLE_BUG_FIX_RegisterAppHostCallback instead of the Cy_BLE_RegisterAppHostCallback, and that is it.
When i use this method my callback is correctly triggered, and this enables me to process the BLE event on demand from the M0 core. This fixes my issues.