That appears to be a feature request, as it would require something similar in semantics to Answer() to be added, for out of dialogue messages, to handle cases where the intended result of receiving a message was not to send an outgoing message.
One thing that may be causing me confusion is that SIP clients never send 200 OK status, they only send requests.
I had read it as you were objecting to:
SIP Client send MESSAGE to Asterisk
Asterisk responds 200 OK before disposing of messages.
Asterisk sends MESSAGE to SIP Server
TLS connection is stalled
whereas what you might be suggesting is that Asterisk is returning a success status to the dialplan, not the client, when the server fails to respond.
This is a case when Message is sent between two clients,
So Client A is sending MESSAGE to Asterisk. Asterisk is replying with OK 200 and creates a new Message to second client. Such situation will appear when Client B has lost connection and this MESSAGE is not delivered, and thus its answer was never confirmed.
SIP user agents can be both clients and servers. In your case, the final recipient is a UAS (User Agent Server) when it receives the message, not a UAC.
Unfortunately, people tend to use client to mean the small, peripheral, machine, and server to mean the large central one, but that is not how SIP uses the terms.