To add to these excellent points, and possibly to help repro the crash: the signals being sent to the thread case will (I believe) almost certainly be a SIGALRM, to implement a timeout (and such wouldn't be maskable from outside since it's fundamental to how I assume curl works). Therefore, to repro it, you would need a web service that reliably times out. Test::Mojo is very helpful in creating such things.
Comment on Re^2: POE program running into sporadic segfault
My money is still on SIGCHLD, since OP says this seems related to the act of shelling out to tar. SIGALRM is kind of an old-school Unix design, where I expect most modern event-driven libraries will be using select() or poll() with the built-in timeout parameter. SIGCHLD is still very actively used to break out of one of those blocking poll() sleeps when it's time to reap a child process.