DoEvents をループに入れて回すというサンプルはよく目にしますが、止めたほうがよさそうです。
代わりに WebBrowser の DocumentCompleted イベントのハンドラを用いるのが良いと思います。
Web サイトや回線の状況によっては、いつまで待っても Navigate が完了しない or 時間がかかる場合があります。
その場合、ReadyState がComplete にならず、while は無限ループになります。その無限ループの中で DoEvents が際限なく実行されるのは、どう考えても良い影響があるとは思えません。ここ MSDN フォーラムでも、スタックオーバーフローしたなどの問題が報告されています。
WebBrowser Application.DoEvents をキーワードに検索してみてください。解決策も見つかると思います。