Well, I think I've cracked it - after a few weeks of on-and-off work on making my webmention sending not spam everyone (see https://www.jvt.me/posts/2019/10/30/reader-mail-webmention-spam/ ) - it's now not re-sending them if they're successful. This is a good first step, but I'll be improving it to re-send if the post's data has changed since last time it tried (in the future). Note that this isn't quite done yet, expect it to be live tomorrow perhaps.
@aaronpk I don't have a web host per se, just a linode, which doesn't offer that. but I see they offer https://mailinabox.email/ so maybe I'll just try that, though it is overkill
A potential manual way: have a !snooze command that blacklists a string for e.g. 24 hours.
I like the idea of giving the community the ability to help with this. That also happens to be the easiest thing to implement. Loqi now has a new !kick
command.
!kick
command!kick foobar
to kick that person from the room, but only if they joined less than 5 minutes ago