Я бы собирал диагностику сети.
Перед curl или после того как он вернул ошибку запускаете несколько программ которые записывают информацию в лог.
1) пинг себя, гейтвея, гуглднс и целевого хоста по IP. (в зависимости от сетей размещения источника и цели)
2) трейсроут до целевого хоста без лукапа имён
3) переменные окружения (кто я) списки процессов и так далее.
4) телнет (tcping) в порт целевого хоста и постороннего хоста для сравнения. Чтобы проверить не блокирует ли вас антивирус или целевой хост.
5) помотреть логи целевого сервера. Увеличить информативность логов.
6) воткнуть хост в роутер (linuxbox) на нём собрать трафик по интересующему порту (tcpdump в файл)
7) поставить на хосте виновнике
https://www.winpcap.org/ и писать трафик в файл затем посмотреть в wireshark что происходит.
8) утилиты Марка Русиновича sysinternals для анализа что там происходит с сеткой, процессы, соединения порты, ошибки работы с файлами реестром и так далее.
9) попробовать отправить файл при помощи PowerShell или любой другой утилиты вместо пайтона и curl
Стабильность возврата ошибки по идее даёт возможность найти виновника. Но "войти по RDP" имеет много отличий от запуска от имени системы или таймера. Поэтому у Вас по RDP это работает.