We don't intend to support applications injecting their own events into a gRPC completion queue. In fact, the only reason that mechanism exists under the hood is that it's part of our effort to transition away from the completion queue-based API. Read on for details.
We don't currently have a mechanism that allows integrating gRPC into an external event loop, although we are in the process of making some changes that will allow that. Basically, we are currently working on introducing an EventManager API and changing C-core to use that API for polling. We will provide an EventManager implementation based on libuv, but applications that wish to integrate gRPC with an external event loop will be able to supply their own EventManager implementations that wrap their external event loop, in which case gRPC can be driven by that external event loop.
Once we move to EventManager-based polling, we will be able to make the new reactor-based C++ async API available in OSS (we're already using it internally), and we will encourage people to use that API instead of the current completion queue-based API. The reactor API is much easier to use for most applications.
The current ETA for making the EventManager API available and finishing the libuv-based EventManager implementation is the end of April, so stay tuned for more information.
I hope this information is helpful!