cleanup logging of stdout a bit
make logging skipped transactions more informative
cleanup tests and make sure logging tests pass

there was a race condition because the logs were written in the
background. I'm working around this for now with an
assert_eventually_equal function, but there's probably a better way
log stderr in addition to stdout