This could easily be added by having a privacy / visibility selector. So a reply can be left at default (public) or changed to "private" (i.e., DM). Any further reply underneath is then private / DM (only).
This is pretty much how Mastodon handles DMs and it works pretty well. If there's no post or comment to reply to someone, then a reply on their profile (if they have one) would work to initiate a DM.
An alternate approach to this would be for SN to simply accommodate the comment (an optional field) on Lightning Address payments and display that comment in /notification when displaying that payment's "sats were deposited" notification. So for me to DM you I would send from my LN client to the Lightning address for your SN account and that would let me send my direct message to you through that. You would see that there is a new notification and then from that you could view my message in your notifications. You wouldn't know who it was from unless I gave you my SN nym, or Telegram, or whatever. If I added my SN nym, you could then reply by sending to my Lightning address. It's not threaded messaging, but this is minimalist approach requiring very little modification on the SN end.
And as far as spam,... maybe I can set a threshold to only show comments for "sats were deposited" notifications when they exceed some spam threshold, like 100 sats.
Or maybe not even show a ""sats were deposited" notification at all when the amount is below that threshold.
reply
That last approach, using Lightning address comments, is vulnerable to spoofing though. I could send a Lightning address payment with a comment but in the comment make it seem like it was from someone else. Maybe SN withdraw that uses Lightning Address could be modified to add a comment field, and then if it was a withdraw to another SN account, SN could then (for the notification for the recipient) be able to add the sender's nym since it would be coming from the SN node and thus has account info for both sender and recipient.
reply