Fix double-check of task list

Mainly, have a look at the second commit, it fixes actual errorneous behaviour.

For a better understanding of what the run() method does, I factored out the repaint mechanism to its own method, too.

Take with care and check if it works first before committing. It is dry-coded, I will have opportunity to actually test it only in a few hours.