I'm not sure but according to AutoDocs, processes created by CreateNewProc() by default have assigned both input and output to opens of NIL:. Try adding these tags:
NP_Input,stdin,
NP_Output,stdout,
This should fix the problem with not displaying anything from the child process on SAS/C. However, I'm not sure about the hang, take a look into dos/dostags.h, maybe there are some other tags you have to use...