1. access to the content (post message, wall message)
2. independent whether it is the first post, or a post within a thread, whether it is updated or newly created
3. can set the content to "moderated"
You could extend XenForo_Model_Post::getPostInsertMessageState, but you don't have access to the message text there. Otherwise you can extend XenForo_ControllerPublic_Thread::actionAddReply which saves the actual post.