Fix metrics reporting

Also reduced nesting and indentation to help with the readability and changed some names and comments for consistency.
I've been looking at the stream docs a lot today and you do indeed only get 'close' if it occurs before end (and therefore 'finish'), so you don't need the 'finished = true' stuff.