HPCC-11637 Avoid multiple concourrent ECLWatch onActivity queries

Add a critical section block to allow only one thread to build
onActivity response; move the code of setting Activity response
into one function which is called after all of the response
information are collected; store the information (and information
collect time) into one WsSMC data member; reuse the information
if another Activity request comes through shortly after a recent
request.

Signed-off-by: wangkx <kevin.wang@lexisnexis.com>
The reason for adding const - especially to this ActivityInfo pointer - is to ensure that you don't change an object that is being shared and shouldn't be changed (e.g., like the sorting issues).