Это всего лишь предположение, но, вероятно, это процесс сериализации файла в строку в кодировке base64, который требует времени. Сколько времени занимает звонок, чтобы узнать, доступна ли услуга? Если это не то же самое 30-40 секунд, то вы знаете, что это не фактический вызов в службу, который требует времени, но что-то еще и сериализация наверняка кажется, что это будет большая часть здесь.
Сколько времени нужно, чтобы вручную сериализовать файл (возможно, сгенерированный мастером код работает плохо)? Я, наверное, проверю это и посмотрю, сколько времени это займет. Я бы также проверил (с помощью Fiddler или аналогичного), что именно происходит и когда.