What about each message cost some sats that are returned after x time if the message was not marked as spam. If maked as spam, it's burned or donated to dev or whatever is not pushing users to mark a legitime message as spam. Real spam would be way to costly to be interesing and will stop by nature.