The spec suggests ZNC should be sending the echo to all clients
The spec says that the echo should be sent to the client that sent the message.
In the above example, the status window 1 client sent the message. The status window 2 client has no idea about what messages were sent by the status window 1 client.
ZNC is then forwarding the message that the status window 1 client sent to the status window 2 client, which is a different client that has its own server connection states.
I do not see that addressed and I still do not understand how mIRC could differentiate between sent message and its echo.
It works correctly when used on a standard ircd that supports echo-message with or without labeled-response. I explained how mIRC does this in my previous post.
That said, reading my example again, I was looking for your issue and I think misread what was happening.
When I follow the above steps, I see this:
In the status window 1 connection:
a) The client sends one message
b) It then receives the message it sent to itself
c) and it receives an echo of the message
So far so good. This is what should happen.
In the status window 2 connection:
a) The client receives the message that was sent by the status window 1 connection
b) and it receives an echo of the message
(to clarify, the messages are being played back to the status window 2 connection)
As far as I can see, this is wrong.
Actually, this looks right. ZNC is forwarding what it thinks the status window 1 client is seeing to the status window 2 client.
If you message yourself in the status window 1 query window, you will receive your message and an echo of that message. The echo message is filtered out. In the query window itself, you will see the message that you sent and the message that you received, ie. two messages.
The status window 2 client then receives two messages: the message that should be displayed as if it was sent and the message that was received, ie. two messages.
So we are now back to the issue of how a script should handle these messages. Without echo-message, a script is needed to display ZNC self-messages in the correct windows. With echo-message, this has become slightly more complicated because the echoed message has to be handled by the script as well.
If this isn't the issue you are seeing, I really would need a numbered, step by step example, that reproduces your issue exactly.