In my "loadstart" event handler I call executeScript() with a callback. Here is what I see:
actual page change: script runs, callback runs
window.location.assign(same page, new hash): nothing runs
click anchor link e.g. href=#newsection: nothing runs
set location.hash = newhash: script runs; callback does not
The last case is the strangest to me. The script runs just fine in this case but the callback with the result never happens.
I'm not sure under what conditions a URL fragment change should trigger the "loadstart" event; I would say it should be always, and that does not appear to be the case. That is probably a bug.
Worse, though, is running the script but not triggering its callback. This could leave some task half-done: the in-app-browser window has had a state change, but the code outside the in-app-browser never hears back about it. That is almost certainly a bug.