I may be missing something, but it seems like there may be some missing/desirable functionality on the CLEvent. In the C API, there's a mechanism to register a callback for the event, and it is possible to pass along arbitrary associated user-data to the callback (i.e., clSetEventCallback(), where the callback function has signature void cb(cl_event event, cl_int cl_event_command_exec_status, void* user_data).
I can not find a way to duplicate this functionality. There's a registerCallback() method for a CLEvent, but seemingly no way to associate arbitrary info.
For example, I'd like to associate memory buffers that should/could be freed once a specific event has completed.