[...]
And the problem at hand IIUC is that you cannot run a build command that returns immediately yet has some things in background. And indeed, I'm afraid it's not possible in the current situation, because Geany waits on the child (on purpose, as it's supposed to be a build tool and wants to read the output and more or less control the child); and that whatever you do the shell it launches will wait on any child before quitting (yes, even if you use "&", because of job control). Unless I'm missing something somewhere, I see 2 solutions:
The shell should return immediately when the & is used, thats what its for, but one thing I discovered is that Geany doesn't look for the process to have finished until the pipe is closed, to make sure we read all the output.
So unless the daemon closes its stdout (which is rare) then Geany will still wait for it, since it has inherited the shells stdout which is the pipe to Geany.
Cheers Lex