Change the way sent notifications are recorded, from a channel to a slice; this enables correct handling of timeouts.

Now instead of generating success responses and sending them to ourselves (which was broken and a dumb idea in the first place),
we just record the time each notification was sent and scan through the list of sent notifications every so-often to discard the old(er than TimeoutSeconds) ones.