1. This is what the "Ban" feature is for.
2. Anecdotal. Not really an issue in my experience.
3. This is what the Discord API is for. There's a really simple API to dump the chat history. Just make a cron job to dump every 10 min or so, and host that on a static site. Problem solved.
4. See 3.