I like where you're going. But, for me, I try to keep it a little more simple. When I need to chain workflows together I just use DCA. Meaning, in the case you describe, I cannot approve the supply plan until the demand plan has been approved. Simple Boolean will detect that and I can use that with DCA. The only complexity comes when I need to reset the Booleans which can be done with an import action as part of the overall workflow or as part of the monthly turnover.
You can use custom workflow, in this case, using dynamic cell access and selective access, will solve your problem as by selective access you can mark roles of manager and by DCA you can control the approval process by setting up some boolean line items as per requirement.