Отдельные темы в веб-сервисе после его завершения

Если это было задано до моих извинений, а это веб-сервисы .NET 2.0 ASMX, еще раз мои извинения = D

Приложение .NET, которое предоставляет только веб-сервисы. Примерно 10 миллионов сообщений в день с балансировкой нагрузки между несколькими IIS-серверами. Каждое входящее сообщение является XML, а исходящее сообщение - XML. (XMLElement) (у нас есть мощные серверы, которые работают на стероидах).

У меня есть SLA, в котором все сообщения обрабатываются в течение X секунд.

Одна функция, Linking Methods, в этом процессе теперь занимает 10-20 секунд, она требуется для каждой транзакции, однако не критично, что это происходит до того, как веб-служба возвращает результаты. Из-за этого я предложил добавить его в другой поток, но теперь понимаю, что мои слова и разработчики, стоящие за ними, возможно, не до конца продумали это.

В приведенном ниже примере слева показан текущий поток. Справа то, что пытаются

По сути, мне нужно, чтобы веб-служба порождала длительный (10-20 секунд) поток, который будет выполняться даже после завершения веб-службы.

Вот что, по сути, происходит:

        Thread linkThread= new Thread(delegate()
        {
            Linkmembers(GetContext(), ID1, ID2, SomeOtherThing, XMLOrSomething);
        });
        linkThread.Start();

Используя это, мы сократили время с 19 секунд до 2,1 секунд на наших устройствах разработки, что весьма существенно.

Я обеспокоен тем, что с количеством трафика, который мы получаем, и если поставщик / сторонняя сторона решит нас ограничить, IIS может решить перезапустить / уничтожить эти потоки, прежде чем они закончат обработку. Я согласен, что наше решение может быть не самым лучшим, однако у нас нет времени для того, чтобы встроить систему очередей или другую службу Windows для этого.

Есть лучший способ сделать это? Любые предостережения, которые следует учитывать?

Благодарю.