My school district uses Web Help Desk (www.webhelpdesk.com).
It's paid, but has quite a few of the features you mentioned plus some. It's web based where clients can enter tickets on the website or via e-mail. It does have a tasks feature, but we never used it so I don't know about subtasks.
It has reports (with pretty graphs!) and a FAQ section you can add to.
Features it has that you didn't mention, but might find useful:
-LDAP / Active Directory integration for user accounts, or just add accounts specific for the help desk
-Inventory & Parts tracking; good to use to know if a device has consistently had the same problem and know when to order more parts
-Surveys fro clients
-Billing support