I recall reading that it was not the task running that was expensive, it was the creation of the task. Granted, computers have come a long way since 2010 so this likely doesn't matter anymore assuming you are not calling set_task() a million times. In the past I have used a thinking entity opposed to set_task() based on this mindset, but set_task() is certainly easier.