This is an interesting question and I really wish the solution was baked into the platform. This is something that's possible with the Kentico Xperience 13 Algolia search integration, but that is designed very differently from the Azure Search integration.
I think your idea to customize SearchIndexInfoProvider
is the only option, specifically the protected virtual TInfo GetInfoById(int id, bool useHashtable = true)
method.
I think having a custom setting in the CMS that would let you set a 'primary' index which could be returned in GetInfoById
might work.
Another (much simpler) option is to have 2 indexes that index the same content and use a CMS setting to switch the ASP.NET Core application to use the alternate index while the other is being rebuilt.
Since you are in full control of the ISearchIndexClient
creation in the ASP.NET Core application, you can swap between indexes whenever/however you want.