This is similar to DanielSank's idea.
First a meta question is made, asking what questions should be asked to the subject of the AMA. People post their questions as answers to this meta post. Then, there is a period of time where people upvote the questions they want to see answered. Maybe these get community wiki'd to not mess up rep too much. After this voting period ends, the subject of the AMA edits his initial answer into each of the questions (where each question, remember, is an "answer" to a meta post).
After the subject of the ama makes his initial answer to a given question, discussion can continue in the form of comments, which will get moved to chat. Thus each quetion has its own chat room where a free form discussion can take place. After discussion of one question dies down, the subject of the AMA moves on to the next question.
A downside is that a moderator will need to continually edit the original meta post to indicate which question's chat room the subject of the AMA is currently in. The advantage is that the questions are more easily browsable.