For an example of a C++ event manager that is type safe, simple to use and very efficient, see SimpleSignal.
As far as I have found, it provides the optimal solution for me.
Did you make that?
It was created by Tim Janik, I just put a copy in Github to make it more accessible to my projects and others that would need it. It is not copyrighted by Tim, but there is a readme that clearly attributes the source to him.
For GUI, I recommend libRocket. It is general purpose, independent on other game engines, and can easily be adapted for OpenGL (which is what I did). On the negative side, it takes some effort to interface. On the positive side, it is very efficient and powerful. You will be able to control the GUI with a design similar to html and css.
There is an implementation of 3d Simplex noise at github/ashima/webgl-noise. I was mainly worried about higher performance costs as the 3D noise is more complex than the 2D noise. But it turned out this added a negligible time to the shader.