Меня беспокоит не сколько send, сколько shutdown и close. В МСДН их поведение сильно отличается от того что я вижу у себя.
С сокетами работал в win32, таких странностей не примомню. FtpWebRequest не подходит по ряду причин.
Такой ещё вопрос, как тогда можно приостановить выполнение текущего треда, пока все данные из буфера не будут отосланы ?