The change event of a PermissionStatus doesn't fire when the PermissionState changes. This demo on StackBlitz (https://stackblitz.com/edit/js-yzejtq?file=index.js,index.html) can be used to reproduce the bug. Changing the microphone permission state by calling getUserMedia() doesn't trigger a change event.
<rdar://problem/113110801>
This is still an issue. +1