On the slow/hanging machines, try setting
Tools | Application Options | Advanced | Maximum step output macro length to something other than 0 (the default is 1048576). Also remove or change any script code like this in your project(s):
Code:
Application.Options.MaxStepOutputLength = 0
Since the output macro value is stored in memory, and your project generates a lot of output, the 0 value (unlimited) on the problem machines could consume a lot of memory and severely degrade build performance.
http://www.kinook.com/VisBuildPro/Manual/advopt.htm
Or, modify the 'Parse the difference file -looking for changes other than version' step to not generate so much log output.