Simply try the same invocation sshuttle -D ... 2>&- | cat (with the redirect) and see how it behaves.
However, there seems to be a fundamental misconception about the workings of process environment. A shell command line does not contain or isolate the task. This is how a daemon can work in the first place: it detaches from shell and terminal and starts running on its own. You have indicated that the exit status of the command is of interest to you. But this may be largely irrelevant to the working of your service. The daemon will have forked at least once; the process writing to your pipe/stdout is the child not the $pid you forked.
In reply to Re^8: Capture::Tiny alternative
by Anonymous Monk
in thread Capture::Tiny alternative
by melezhik
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |