This section feels a little strange to me. Setting `model_properties` on 2498 by calling `modelDriver.settingProperty(...)` and then turning around and setting it to `undefined` if the kernel is blocked.

Shouldn't this be an if-else construct instead? If not blocked, call `settingProperty`, else set to `undefined`. Something like that.

Or is there a reason we need to call `settingProperty` even if the kernel is blocked?