My understanding for what it's worth is:
1. Are back_amount and lay_amount based purely on the actual amounts which are waiting to back or lay for the specific selection, or do they include the additional amounts Betfair shows as available based on its cross-matching formulae?
The API according to Betfair cannot show virtual bets: see
http://bdp.betfair.com/index.php?option=com_content&task=view&id=242&Itemid=682. Does enabling the option to "show prices exactly as they are on BF" make any difference to the answer to Q1?
It would appear to be a problem with the API so the answer is likely to be no. OXA would know better than me though.
3. Do actual bets on the selection get matched first?
I don't know the full answer to this question. However, a virtual bet is always linked to real bet amounts and prices available on the other side. So, if the virtual bet is snapped up then the only way to balance the books is for the linked real prices/amounts being used to fund the virtual bet. In this situation your bet cannot have priority. Cross matching, after all, matches a virtual bet on one side with the real amounts/prices on the other side for all other selections in the market.