Here's the logging of the issue, when changing "What to block" to "Whole page":
onElementUpdate registration element id: submitMonitor_script ancestors: *submitMonitor_script*submitMonitor*submitMonitorGroup*demoPanel_content*demoPanel*completeExample__1e_6*examplePanel_content*examplePanel*primary*mid*container*javax.faces.ViewBody*javax.faces.ViewRoot*
(That shows that onElementUpdate is being registers for submitMonitor_script)
...
updated element id: submitMonitor_display
elementUpdateListeners updated: false idCallbackTuple.ancestors: *submitMonitor_script*submitMonitor*submitMonitorGroup*demoPanel_content*demoPanel*completeExample__1e_6*examplePanel_content*examplePanel*primary*mid*container*javax.faces.ViewBody*javax.faces.ViewRoot*
updated element id: submitMonitor_script
updated element id: dynamic-code-compat
(This shows that the handling of the submitMonitor_display update is clearing out the submitMonitor_script callback, before the submitMonitor_script update handling would have called it.
When running
ICE-8959test case it can be noticed how none of submitMonitor's elements registered with onElementUpdate are updated. This explains why the corresponding callbacks are not invoked.