We have recently added a new, not yet documented call that allows for this:
viewer.onApiUserStateChanged(function(key, value) {
});
For state changes triggered by the material picker, the key in the callback is MaterialPicker:EXTENSION_NAME
, and value is the name of the selected material. Let us know if this works.