Hi Cameron,
Right now, I have promote the subtask so that it sorts as a top level task.
That could be OK, but the parent task and subtask lose their context, If the promoted subtask is "Call Joe", I may no longer know which Joe or why. If there is another subtask to follow in sequence, that information is lost as well.
I understand that a solution may be difficult to implement. Each task would need new internal fields like "greatest sort date", "least sort date" in addition to the existing due date, and you would have to modify the sort routines to utilize the new fields. The search routine should be OK as is.
I always sort by date in ascending order. If you can make that
assumption, it will simplify the job greatly. It might be worth doing
that and wait to see if anyone complains (agile development?)
That would mean you can have field "display date" which is the lesser of the the dates of a task and its children and has an unambiguous definition. That could be displayed where the current date is, but perhaps with font change or parens() to indicate it is inherited.
Of course you would also need triggers to update the "display date" whenever a subtask is modified. If you don't have that available, it will be tough.