Ionic (cordova) iBeacon plugin not ranging when opened inside beacon region

I've got a simple Ionic (Cordova/Phonegap) test app where the logic is:

  1. Monitor for a few beacon regions.
  2. If the device is inside/enters a region then start ranging for beacons in that region.
  3. ...
  4. When the device leaves the region, stop ranging but continue monitoring for that region.

I'm using Peter Metz's Cordova iBeacon plugin (see below for details of all system & plugins used). The above logic is pretty standard stuff and I have it working on Android & iOS. However, I have 2 related questions:

  1. When I open the app within a beacon region (i.e. the beacon is inches away on my desk), Android fires the delegate.didEnter method and I can use that to start ranging immediately (< 1 second). iOS doesn't fire that method or delegate.didDetermineStateForRegion. Is there a flag or something I should be setting to check which regions the device is already inside at startup?
  2. If I turn the beacon off (remove battery), on my iOS device neither the delegate.didExitRegion nor delegate.didDetermineStateForRegion methods are called (both are called on Android). If I walk away from the beacon, so I actually cross the boundary, then those methods are triggered on iOS. Is this expected behaviour (feels a bit odd) or am I missing something to make the iOS experience a bit more responsive like Android?

Background info

My system set up:
Cordova CLI: 5.1.1
Gulp version: CLI version 3.8.11
Gulp local: Local version 3.9.0
Ionic Version: 1.0.0-beta.11
Ionic CLI Version: 1.6.1
Ionic App Lib Version: 0.3.3
ios-deploy version: 1.5.0
ios-sim version: 3.1.1
OS: Mac OS X Yosemite
Node Version: v0.12.2
Xcode version: Xcode 6.4 Build version 6E35b

Cordova plugins used:
com.unarin.cordova.beacon 3.3.0 "Proximity Beacon Plugin"
cordova-plugin-whitelist 1.1.1-dev "Whitelist"

My iOS device (iPhone 5) is running iOS 8.4

My BeaconRegion objects definitely have notifyEntryStateOnDisplay = true
I ask for iOS 8 permission with this method within window.ionic.Platform.ready:

$window.cordova.plugins.locationManager.requestAlwaysAuthorization();  

Any experience/help would be great.