decouple script from compositor, route through layout

communicate via layout
refactor channel wrappers from *Task --> *Chan