Pause game while sound plays

In my current project, I am presenting the player with a dialog tree. When the player selects an answer, the game should play a sound file (which is a reading of the answer) and then move on to the next node in the tree. I want the sound to play completely before moving on.

The questions and answers are presented using OnGUI. I've been trying to work with WaitForSeconds() to work in the pause, but it's not quite working. Because I can't use yield in OnGUI, I have a function to handle the sound playback:

function handleResponse (response : int) {
audio.clip = Resources.Load(nodes[nodeloc][3][response][2]);
audio.Play();
yield WaitForSeconds(.5);
nodeloc = nodes[nodeloc][3][response][1];

}

This doesn't work. The game pauses for the appropriate length of time, but the sound doesn't play. If I comment out the yield statement, the sound plays, but the game doesn't pause.

I've done a lot of research on this, but this is as close as I have come to a solution.

Put the yield in front of the audio.Play()... Also, make sure your player has a sound listener (I believe that's what it's called...), try playing a sound by him to make sure he's RECEIVING the sound first, and if he is, than try what I said before, if he isn't, than you might need the listener...