アドインは最初に backgroundworker を使用せずに作成され、正常に動作しました。同じ ArcMap セッションで実行した直後に追加して表示できるシェープファイルを作成できました。
次に、実行が完了するまで変化を示さなかった進行状況バーを UI に追加しようとしました。そこで、backgroundworker クラスを追加し、時間のかかるシェープファイル作成コードを (変更せずに) backgroundworker の dowork イベント ハンドラーに移動しました。
これにより UI の応答性が大幅に向上しますが、結果のシェープファイルを同じ ArcMap セッションに追加すると、画面に何も表示されません。ArcMap は、「ロックを取得できません [テーブル xxx は別のプロセスによって書き込まれています]。
その時点で書き込みは完了していると思います。また、現在の ArcMap セッションを閉じて新しいセッションを開始すると、問題なく結果を表示できます。
投稿するコードが多すぎて、コードをそのまま backgroundworker クラスに移動したことが問題の原因であると強く感じています。バックグラウンドワーカー/ArcGIS アドインの経験が豊富な皆さんが、何が原因であるかを教えてくれることを願っています。前もって感謝します!