Show executing SQL statement in long-running query log message

Also fix typo ("progess" -> "progress").  Refactor unit test, and add unit test coverage for log message.
Can you explain why "frag.stmtText" can not be NULL? You have a comment on its definition:

For ad hoc queries this may be null, since there is no single statement text...

I guess that I do not understand why they are not consistent.