Это должно работать так, как вы это сделали. Я проверил его с помощью простого скрипта как исполняемого (в вашем коде скрипт вместо xxx):
#!/bin/sh
a=0
echo $a >> /tmp/test.txt
И я рассчитал это:
> time /usr/bin/open test.app
real 0m0.042s
user 0m0.022s
sys 0m0.010s
Таким образом, приложение запускается через 40 мс (и если фоновое, оно должно возвращаться примерно в то же время). Проблема может заключаться в том, как вы открываете приложение (командная строка, значок, applecript ...). Не могли бы вы рассказать больше?
edit: Если вы используете терминал для открытия, вы можете использовать знак '&' в конце (запускает фоновый процесс). Если я это сделаю, оболочка вернется через 6 мс.
ш
Юха