Use separate channel for trigger and signaling suspension
Use separate channel for trigger and signaling suspension

This fixes a race condition in the Suspend method. It was being
called by different routines almost simultaneously and breaking
when they tried to close the same channel (suspendCh). So calls
to Suspend are now queued through a separate channel (suspendSigCh).

babbleio/babble,babbleio/babble