set the subchild process name
add subchild waiting to the extra fork case, and unifdef it.

It seems to be doing the right thing now.