Your conclusions are correct. The current data model does not support what you want to do.
When I looked over the data model first before reading your posted text, the question that immediately popped into my mind was "why is TaskType the parent of the join table and not Tasks? And then reading your post simply confirmed that I has spotted the issue.
I don't know that you need a table of task types at all. This would seem easily replaced by a simple custom values value table. But if you do need to store the values in a table, it would not seem to be something to set up like you have here as a related table.
I think that you have two different goals to accomplish here. The first would seem to be the need to assign a "task type" to a specific contact linked to this listing. I can't quite see why a "listing" would be labeled as "buyer" or a "seller" (these are properties listed for sale aren't they?) as would happen in the current set up. I think that you have a contacts table that should also be linked to listings with a join table where you specify the task type in order to accomplish this first goal.
The second is to link specific tasks to this listing in such manner that you have a place to record information specific to the "link" between listing and task.
In this set up, the join table record links a single record in tasks to a single record in Listings and then you can add any due dates and completion dates needed as fields in this join table.
Phil - once again you have proven to be my hero.
looking at this i think i am still stuck.
The tasks are associated with the listing, so I really want to keep them with the listing and not the contact... contacts will have their own tasks of a different category, such as get pre approval letter, and follow up phone calls.
But delivering an abstract, placing a sign in a yard, taking photographs, publishing to the web, these are all listing related tasks. is there a way i can keep them that way and still meet my goals?
What I described allows you to do exactly that. If you don't need to link tasks to contacts (which is what your original post suggested with references to "buyer" and "seller"), then don't do that part of the change. The details that I spelled out specifically are only the part that links a listing record to a task and the join table then becomes the place to add your due and completed date fields.