The verdict
For a small B2B team that runs shared projects with owners, deadlines and approvals, I would pick Asana. For a founder or freelancer who wants one trusted personal list, or a tiny team with light shared projects, pick Todoist.
Todoist stays simple, and that is also its limit. Once you need time tracking, resource planning or detailed reporting, you will feel it. Asana carries more structure, so it needs more discipline from the team. If people will not keep owners and dates up to date, a nicer tool will not fix that. Both have a free plan, so test with a real project before you commit.