Просто предоставление дополнительной информации на основе опыта: комментарии внизу версий 3.5 и 4 этой страницы документации для Socket.Connect описывают мой опыт - пример просто не сработал Очень жаль, что я не знаю, почему это работает для некоторых, а не для других.
В качестве обходного пути, несмотря на то, что говорится в документации, я изменил пример, чтобы фактически отправить 1 байт без флагов. Это успешно обновило состояние свойства Connected и эквивалентно отправке пакета keep-alive с интервалом.