There is also a https://learn.microsoft.com/en-us/iis/get-started/whats-new-in-iis-8/iis-80-application-initialization IIS Application Initialization module for auto warm-up, check if you installed it. Note as it uses HTTP request, you might need to disable force https redirection? Just a guess, if you got no problem after enabling it then it's ok.
Though I'd recommend either:
move to docker. (no more wicked IIS issue)
change the infinite loop into a scheduled job, for instance let Hangfire initiate it every minute. (still need to warm up by a first request)
Or, if the queue is an external queue like an MQ, I'd made another service outside IIS that watches the MQ and dispatches to your API on IIS.
If it's an in memory queue then you better think again, as even if everything set, IIS still has a max lifetime for services. After recycle the queue will be lost.