producer: fix write IOError deadlock

if `WriteCommand` fails, since it only occurs inside the same goroutine
that receives `Delegate` events, the call to `WriteCommand` deadlocks
trying to delegate the `IOError` (which sends to `Producer.ioErrorChan`)

fix it by making the `IOError` send "async" in a throwaway goroutine