Fix logbuf issues

This fixes a tailer leak, a race on the close flag, as well as a logical race that could cause some lines at the end of a log to not be read.
The problem is that `StopAtEOF` will block until the tailer has stopped, so I don't think there is any way to do this without a goroutine. The timeout is kind of ugly, but I couldn't come up with a good way of synchronizing properly.