Ensure cb only called once

We noticed a situation where run's callback could be called more than
once if a stream emitted an error and then finished. We couldn't find clear
documentation from node about how streams are supposed to handle this,
but we believe this is reasonable stream behavior and only calling the
callback once shouldn't hurt anything.

Thanks to @jiancheung for noticing this.
could probably inline this in the function definition