Last I used ithreads on windows (OP is unix I think) 2 years ago ithread interps never clean up after themselves after exiting and memleak. I believe there is a warning in the POD to reuse interps and not fork.
To OP, system is a blocking command. It won't return control until the command system runs exists. Not sure if this is your problem.