When I invoke that logic, the Process Explorer shows a bunch of keys and 4 new threads showing up in my perl.exe.

I toss another timeout task, and no more show up.

I toss another task 10 minutes later, have it timeout and
abort, and another thread shows up.

I can't get it to consume
anymore.

This is probably bad.

Will I eventually consume all the threads on the box?