If you're worried about latency, you should certainly use a custom realtime UDP protocol - you can be guaranteed latency under 30ms for small messages unless more than x number of retries have to be made (depending on the size of the packet, and other factors) Data is sent at 2mbit, which is 2 million bits per second exactly; If you'd like exact timing information, see the following data:
---
2mbit is exactly 2 million bits per second, or half a microsecond per bit.
The following elements are present in a UDP packet:
(802.11 phy overhead:)
96 bits plcp preamble
32 bits plcp header
(total of 128 bits / 16 bytes)
(802.11 protocol overhead:)
24 bytes 802.11 header
4 bytes extra (for WEP IV)
(now, actual data:)
8 bytes LLC header
20 bytes IP header
8 bytes UDP header
x bytes data (your data goes here)
4 bytes 802.11 CRC32
Soooo, adding all that together gets us:
84+x bytes (where x is the number of bytes in your packet)
which is
672+8x bits (or 336 + 4x microseconds)
as you can see, 802.11 is more than capable of delivering a message within 30ms, but the question is more one of whether the message gets received

TCP is presently set up for reliable operation over long distances, so it's really not ideal for this sort of application; though this is one area I plan to improve in the future.
Anyway, good luck

-Stephen