It seems is still unclear how this push notification works:
i'ts not the softphone client the one who registers to the PBX - there is a push service on the PBX installation which "impersonates" the softphone client, SIP registering on its behalf to the PBX.
Apart from this, its major functionality is to send to the global, worldwide push server (Apple for iOS, Google for Android) a payload everytime it receives an incoming call and an end call as for the client it impersonates. Mainly, the payload contains device identifier, caller id, caller name and a call identifier. Then, those global servers communicates with their operating systems (iOS for Apple, Android for Google) on client's device based on the device identifier. The operating system then starts the client process (or wakes it up if not running) then passes it the caller id, caller name and call identifier, so the client can call back the caller - very, very similar with the known *20*.
So, I hope I've explained pretty clear why the extension remains registered even if the softphone client is powered of - because it's not the client who SIP registers to the PBX, but it's the push service.
If you want the extension to become unregistered, then the client should unsubscribe from push to the PBX - this will instruct the aforementioned push service to unregister. Depending on the version of the client and the PBX, this is done from client's Forwarding Profiles, "allow push notifications".
Hope it's clear.