Replaced recursive addSignal call with a while loop.
Only collecting if no message is waiting. Also using eager heuristic for signalling if collected upon signal delivery.