Why are you creating and destroying threads constantly, that's a bad design. Pool them. Or use std::async to start your cheap jobs, since it will use a thread pool.
While I agree that his method is not optimal, a bug in the standard library is a pretty big deal. If happened to find a way to reproduce this bug, even if by accident, that's a good thing. My suggestion would be to try simplifying it. See if you can remove the networking code. Get it as small as possible while still being able to reproduce the problem.