Потому что вы пытаетесь получить доступ к переменной потока в лямбде, которая инициализирует переменную потока (так что в этом случае это будет означать, что вы пытаетесь запустить поток из самого себя). Попробуйте переместить thread.Start()
out:
Thread thread = new Thread(() => PagSeguroWork.Execute(vlTotal, tipoPagamento, nrParcelas));
thread.Start();
Также в настоящее время в целом рекомендуется использовать C# Task
API, а не создавать Thread
вручную.