<div class='quotetop'>QUOTE </div>
--- Quote Start ---
I don't really want to hold off the transfer for minutes at a time with waitrequest so I think I'll use flow control instead.[/b]
--- Quote End ---
As far as I can tell, there isn't any difference to the master whether you hold it with waitrequest or with dataavailable. According to the Avalon spec, a master doesn't directly receive dataavailable or dataready, it just gets blocked on waitrequest, (the same as per variable wait state).
I can see the flow control being slightly easier to implement if you already have a fixed wait state port -- but the end result will be the same to the master.
If you want to avoid having the master block for an indeterminate time on reads, you need to come up with a different mechanism.