The best place for MySQL troubleshooting is from the MySQL folks themselves. They make it, that have excellent support, better than we could do.
That said -
There are some excellent tuning guides posted at threadsdev.com
here,
here, and
here.Great reads, all three.
I noticed that in the processlist you posted that all of the waits and locks seemed to be in your Users table. Have you optimized it recently? That can help. Close the board, backup that table, then optimize it. Optimze all of your tables regularly if you can, it helps.
If you're having continual problems in the Users table then you might want to prune. Have members that haven't logged in to the board in the last year? Last 6 months? pune them, then optimize the table after they have been pruned.
Give those tuning threads a thorough reading and give them a try. I know that they have helped a lot of people.