Sorry I'll try to be more structured
Top-level frames you need are:
1. The RL Button
2. The RL's "status" frame which lists replies
3. The "Request" frame that displays on clients when the RL presses the button.
"2" should have some way of displaying data and a button to :hide() the frame when it's done.
"3" should of course have its child buttons to respond and hide itself.
Flow:
a) The RL presses "1" , this calls :show() on "2" and also does SendAddonMessage("MYADDON_REQUEST", "question, or something", "RAID").
b) "2" has an OnShow handler which clears it of any previous data, and registers itself for the event "CHAT_MSG_ADDON" -- so it is now visible to the RL and listening for replies.
c) Your main frame (possibly "1") is registered for the event "CHAT_MSG_ADDON" and has an event handler that calls :show() on "3" whenever it gets a message with "sender" corresponding to the RL's name and a "prefix" of "MYADDON_REQUEST" or whatever you want to use. So "3" is now visible to the raid.
d) A raid member presses "yes" which calls :hide() on "3" and also calls SendAddonMessage("MYADDON_REPLY", "yes", "WHISPER", sender) **sender here is the RL.
e) The RL's "2" is, as noted above, listening for "CHAT_MSG_ADDON" and has an event handler which triggers on "WHISPER" messages with the prefix "MYADDON_REPLY" -- it displays the fact that sender said "yes" **sender here is the raid member.
f) Once the RL has the information they want, they click "close" which calls :hide() on "2" and also unregisters "CHAT_MSG_ADDON" from "2" ("1" should have it registered all the time -- you could make this a bit more efficient by using "1" for all event handling, if you want).