You have partially answered the question yourself;
"NOTE :: Any child VI's(subVI) "Diagram" is in a while loop i.e. it will not return and has to wait for the user interaction."
The fact that the parent is halted until the sub-vi returns is in other words as it is supposed to be; it's data flow controlled execution...However you can put the sub-vi in another loop (that way only that loop will halt), or you can call it dynamically using an invoke node with the wait until finished set to false.