Pull state reporting changes into 1606_ox branch

This isn't threadsafe to do here, since NewTraversalOutcome can be called from anywhere.  The way you were doing it before inside of your goroutine's run loop was thread safe.  I'll go ahead and merge and just tweak this.