make watch actually return an error when there's an error

Two things to fix #1310 even harder
I feel like we're just dancing around not adding an "error" result to the watch list.  Is it really simpler to eat a real error (at any time during a watch) than to just build in the possibility that errors can be returned by the watch interface?