CBConnectPeripheralOptionNotifyOnDisconnectionKey
tells Core Bluetooth that you are using the peripheral in event mode. That is, every event is handled by iOS and the user is presented a notification when something happens but your app is woken up only if the notification is swiped/tapped by the user. This is described in the documentation of this enum:
The value for this key is an NSNumber object. This key is useful for apps that have not specified the bluetooth-central background mode and cannot display their own alert. If more than one app has requested notification for a given peripheral, the one that was most recently in the foreground receives the alert. If the key is not specified, the default value is NO.
Instead you want connection mode. Specify the bluetooth-central
backgrounding mode in you app's plist and implement your business logic accordingly. Additionally, you should consider implementing the restoration functions as well. All this is quite well documented in the questions here on SO and in the n Core Bluetooth Programming Guide.