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.