I've been wanting a simple method for managing dependent tasks for
some time now, and only now did it occur to me that I could just
implement a much simpler method using your current blocking mechanism.
The attached file, confusingly named org-depends.el, implements the
following scheme:
1. Any TODO which has incomplete child TODOs is blocked.
2. If a parent TODO has the ORDERED property, it's children must be
completed in order. Undone siblings block later siblings.
3. Blocked items are greyed out in the agenda list.
John
<org-depends.el>