When WZWave starts a transaction, it sets the timeout to be an absolute number of seconds from the point that data is sent. There has been cases where seriously slow responses are partially received but the transaction times out before the complete response can be sent.
Ideally, the transaction timeout should be extended when partial data is received to compensate for slow data coming from the PC controller.