* if queue is full then mark notification as failed and unblock the wait group instead of hanging * use WaitDone() function instead of calling Done() on notification wait group as it is safer