SqlWorkflowInstanceStore.WaitForEventsの結果では、実行可能なワークフローのタイプはわかりません。WorkflowApplicationのコンストラクターはワークフロー定義を取得します。少なくとも、ワークフローIDをストアに格納してクエリできるようにする必要があります。これにより、WorkflowApplicationにロードするワークフロー定義を決定できます。
また、カスタムワークフロータイプごとにSqlWorkflowInstanceStoreを作成したくありません。これは、何千もの異なるワークフローが存在する可能性があるためです。
WorkflowServiceHostを使用することを考えましたが、すべてのワークフローに受信アクティビティがあるわけではなく、それぞれが異なるワークフロータイプをサポートする何千ものWorkflowServiceHostを実行することは現実的ではないと思います。
理想的には、実行可能なワークフローについてデータベースにクエリを実行し、そのワークフロー定義IDを決定し、ワークフロー定義テーブルから適切なXAMLをロードし、ワークフロー定義を使用してWorkflowApplicationをインスタンス化し、LoadRunnableInstance()を呼び出します。
SqlWorkflowInstanceStoreによって生成された特定のHasRunnableWorkflowEventに関連するワークフローを(カスタムワークフロー定義IDとともに)関連付ける方法、または実行時に作成される数千の異なるカスタムワークフロータイプをサポートする別の方法が必要です。また、複数のアプリケーションサーバー間でワークフローの実行を負荷分散する必要があります。