Мы используем Quartz.Net, он нас полностью устраивает, работает надёжно. Там есть retry, если что-то отвалилось, для реализации задачи достаточно отнаследоваться от одного класса. Quartz запускается как windows сервис, что достаточно надёжно.
IIS я бы не рекомендовал - все функции по собственно планировке периодических запусков нужно делать вручную.