Can I Task.Delay() for 1 day?

To answer your actual question. Task.Delay can be used to delay up to int.MaxValue. So yes, your code is OK.

Now as you've pointed out, IIS can wind down websites if you aren't careful, but also during redeployment scenarios, your application will restart and you don't have any way (in your existing code), to track where you are up to. In those scenarios, using something like Hangfire would be better.

However, assuming your DB Cleaner service is fine to be run multiple times per day (e.g. It just cleans up old records and is not required to be run once and only once per day), then you might not even care.