Как заставить промежуточное ПО работать только для одного пути?
Вы можете использовать UseWhen. Например:
UseWhen
app.UseWhen(context => context.Request.Query.ContainsKey("branch"), HandleBranchAndRejoin);
Ссылка: Разветвить конвейер промежуточного программного обеспечения