Use callback from empty write instead of drain event but don't prevent further writing (inspired by @chrisgladd)