Have you tried the Open Source donationware ToDoList?
From their website:
I think it fulfills several of your requirements
From their website:
Quote
ToDoList is a rare form of task management tool, one that allows you to repeatedly sub-divide your tasks into more manageable pieces whilst still presenting a clean and intuitive user experience.
ToDoList has been in continuous development for the last 4 years and is an ongoing project.
Your tasklists are stored in XML which provides many opportunities for advanced formatting and printing using stylesheets.
I think it fulfills several of your requirements


