Я посмотрел на исходный код фреймворка и, насколько я могу судить, OpenReadAsync никогда не касается того, что вызывает DownloadProgressChanged.
Он не вызывает GetBytes, как это делают DownloadDataAsync и DownloadFileAsync, что, в свою очередь, похоже, запускает событие.
Чтобы обойти это, я просто использовал вместо этого DownloadDataAsync, который вызывает событие и позволяет предоставлять обратную связь UI для загрузки. Он возвращает байтовый массив вместо нужного мне потока, но это не проблема.
Итак, я предполагаю, что это MSDN здесь не так, и OpenReadAsync не запускает DownloadProgressChanged.