What happens when best_task_state and self.task state are equally "good" (ranked the same).  Wouldn't concatenating them like this:  self.old_task_states + [self.task_states] just end up cycling between both every time the module got loaded?  Not fatal, but would create a lot of log noise.