i just had time to watch this; it's very nice work.
i guess this is either obvious or wrong, but your async macro reminded me of logic variables (eg in oz) (ie you appear to be rewriting the system so that, effectively, the variables in your dataflow are logic variables, and then adding concurrency to match). that suggests that the debugging issues you have are similar to ones that they have to deal with. i don't know what solutions they have, but if this makes sense, and you haven't talked to van roy et al, it might be worth doing so.
(and i guess other parallel logic program(mer)s too - oz is just what i am most familiar with. mercury?).
From now on, I'm going to start all my questions with "this is either obvious or wrong, but ...".
I hadn't made the connection between dataflow and logic programming. I'm not sure if the programming practices surrounding logic programming would be useful in this context, but I'll certainly look into it. Thanks for the suggestion.
"logic programming" is a bit misleading. oz (at least) doesn't have built-in DFS like prolog. but it does keep the idea of logic variables, which it uses to make concurrent programming "easy" (in the sense that what you are doing is deadlock free), so it is more similar than you may think...