Hi @Steve Wardell ,
I think an App Gateway would be the way to go for your scenario. There's a tutorial that walks you through not only using VMs but also App Services. The AppGw would be you single IP address that can route traffic to the specific site based on URL matching to certain pool. Since your site is already hosted on IIS, then you can crate VHDs of your on-prem machines and upload them to Azure. This will work great for customized software or elaborate processes that beyond the scope of app service functionality. If your ASP.NET sites are relatively straight forward, then you can easily deploy your code to an app service and assign them to a pool.
With regards to using Azure Cache for Redis, I would have a look at this doc, to see how best to implement across your solution. You can also utilize feature flags that match pool name (or some other value) to retrieve different values to result in different behaviors.
If you have any further questions, please feel free comment down below.