I guess it is not broken, just that it has no maintainer.
Regardless, is there any traction for an "ado" language extension? The ApplicativeDo proposal advocates for a "do" that automatically downgrades to Applicative, but that may be too much or powerful. Opt-in via "ado" might be the right answer.
In a somewhat related/unrelated question. Is there a mechanism to fork an Arrow into a separate thread? I would assume it would end up looking like:
forkArrow :: Arrow a => a b c -> Chan b -> Chan c -> IO ()
or perhaps :: Arrow a => a b c -> Chan b -> IO (Chan c)
Is there any way to manipulate the (Input, Output) pair as an arrow itself along with other arrows that have been "forked".