This one seems a bit strange, but I'll try and explain it clearly...
I have a workflow to create or kill an SSH tunnel. With keyword + argument it runs the following script:
ssh -f -N -D 1080 {query} -o ServerAliveInterval=15 && echo "Tunnel created" || "Tunnel failed to start"
If I run this in terminal (replacing query with the relevant details), the "Tunnel created" text is displayed immediately, as SSH is run and sent immediately to the background.
If I run this workflow in Alfred, the notification does not display until the SSH process terminates (by manually `kill`ing the PID).
Obviously I consider the terminal behaviour correct, as the script is "finished" once SSH is launched in the background, and the success is echoed out immediately (while SSH runs in the background).
Alfred v2.0.2 (178)
OS X 10.8.3