Indeed, the on OPEN event has only ever triggered for specific window types.
on OPEN triggers for users in your notify list if you have the "use query for notify nicks" enabled in IRC/Options, which means that a query window is opened - so naturally, on OPEN is triggered.
The reason this was never extended to the message window is that 1) it was not clear how it would affect scipts that had catered for existing behaviour over the 10-20 years it had been in place, and 2) it was not clear how best to implement it.
Possible solutions might be:
1) Trigger on OPEN when the message window is about to be opened but set an identifier $smwindow to $true or $false. However, this would break all scripts that assume on OPEN means a query window is being opened.
2) Add a new on OPEN event character, such as ~ tilde, that indicates a message window is being opened. This would break all scripts that make assumptions about available window types, eg. on OPEN * to intercept all window types.
3) Add a new on SMWINDOW event just for the message window. However, this would only trigger when the window is first opened. So if it is already open, your script would not be able to tell if on TEXT was being directed to it. So this might not be that useful.
4) Add a $smwindow identifier that returns $true/$false in the on TEXT event. This would indicate whether the text is being directed to the message window. This might be the best solution that does not break any existing scripts.