timeout threads now periodically check if they should close rather than waiting for the full timeout time