Only teardown once set up has finished successfully.

(Just tested the callback list bug theory: in cover views, the setup callbacks seem to contain the string "column" or "row" depending which state it's in, weirdly; `run()` returns `undefined` for those, and then they get trimmed *after* `Promise.all` is executed over it.)