Don't block split channels

When splitting channels, putting a value on one channel currently
blocks the other channel until the value is taken off it.

Moving it into its own go callback prevents one channel from blocking the other.