Here's what might be best:

An array of electrostatics (piezos are hard to array, and have worse bandwidth), with a small radius (about 0.3 in), operating around 80 kHz (that will travel a bit over 20 m). Each element of the array will give about 20o degrees of coverage. Creativity in the structure of the array will lead to the final beam-width, which will be comparable to similar structures in (omni-directional-arrayed) IR.
Quickly, and informally, let's look at baud rate. If you look back at Vadim's Impulse Coding protocol (the good, reliable, single frequency, quick, cheap, and easy protocol), he was able to get 8 bytes per second. Just ramping up the frequency to 80 kHz (instead of 4 kHz) let's you do about 20 bytes per second instead. Using multi-frequency coding, you can do a whole lot better than this.