For comparison, I made a quick version of the asynchronous HTTP Get (LabVIEW 2013; Messenger Library):
Async HTTP Get.zip
You can, if it is alright to kill the TCP reference from a parallel loop.
It sounds like you are using the wrong kind of reentrant VI. The NI signal processing VIs uses the Preallocate method of reentrancy which is less efficient than shared clones because a new copy must be created for each copy, instead of reusing already made copies. The benefit is of course things like uninitialized shift registers work as expected because each copy is reserved for that call.