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>
I would expect this to be cached inside the class (and same for the recovery connection below) - not done once per query.  If so it would be accessed via a member function instead of being passed around.

@jakesmith would that require no locking on the branch?   Could that potentially cause any issues?  Would it need a subscription to get updates, and would it all get too complicated?  Advice please!