...despite the work_guard still being valid, we see that the threads exit because boost::asio::detail::scheduler::outstanding_work reaches 0.
If you could create a small, self-contained program which demonstrates this behavior it would be very helpful for diagnosing the problem.
Thanks