> the more I read the c source code for glfw the more I realize how dangerous it is for a multi-threaded environment

That is why #97 exists. I have a local implementation, just need to get this PR through.

> So there is no opportunity for an async api like this to work

This is less about making an async api, more about creating a consistent API for the events. We aren't using channels for async-ness, rather for the FIFO functionality.