code: function onChange(changes, removed) {
      if (!self.properties.tethering) {
        _lockCloseHotspot = false;
        clearTimeout(timeout);
        self.removeListener('servicesChanged', onChange);
        if (callback) callback();
      }
    }
docs: Having changing the Tethering property doesn't mean the hotspot is closed. A better indicator is listening to Tethering and Powered property changes The Tethering changes to false, Powered is set to true (maybe the device restarts?) But the best indicator seems to wait for the available services to change.