After a bit more struggle I managed to get memory leaks down to a MINIMUM.
Somehow PL_perl_destruct_level was set to 0 even if it is supposed to be 1 by default when ITHREADS are built, setting that and cleaning up the structures helped.
However there is a special case when you let a thread object go out of scope and therby detaching it, but it has already quit before detatching it. Somehow I get a wierd race bug there, so in these cases we will leak a couple of bytes.
Now on to iThread::Queue, this module will be based on the Thread::Queue API.