The approach here is to cycle through the status entries, finding wuid entries and mapping them to clusters and adding to aws list that eventually makes it back to the response.
1st (addRunningWUs) ignoring EclAgent entries, then re-doing for EclAgent entries, so as to ensure that the Thor entries take precedence..

Instead, I'd have expected that the for 'clusters' loop, to know which Status entries to check for and examine them in turn accordingly, whilst checking each cluster, e.g. when checking Cluster 'thor', it should be able to find out from IConstWUClusterInfo, the instance names, and look then read the appropriate /Status/Servers/Server entries.

Perhaps IConstWUClusterInfo or other workunit helpers don't provide all the info you need and/or should encapsulate the info better, in which case it should do. But I think there's too much mapping and reverse mapping going on here and this activity code _should_ be simpler than it currently is.