Once we turn on something like airplane mode or turn off the global bluetooth radio, all currently living bluetooth classes will need to be notified. Set up a system-wide notifier to do this, along with the relevant events in DOM objects.
Should this really be blocking? What's the effect of not fixing this? Given that this API is only exposed to certified apps, it's not a big deal if there's a bug in the DOM as long as all apps behave correctly.
Now that we've started working with the settings API, I wouldn't say this is blocking anymore. If anything needs to know when system wide shutoff has happened, they can put up a settings watcher on bluetooth.enabled.
For the moment, we're going to fix this via centralizing on the settings API in gaia. Anything worried about something else resetting values can put a settings observer on bluetooth.enabled to get updates. This should cover all of our cases for the time being, so marking as resolved here since we at least have a solution. Related gaia issue: https://github.com/mozilla-b2g/gaia/issues/2402