That's mainly caused by the shader compilation. You can't do this in another thread, it has to happen in the render thread. The time this takes highly depends on the device and the GPU/driver. The S4 mini isn't exactly a power horse, so it takes it's time. There isn't much you can do about it, I'm afraid. The only option is to set Config.skipDefaultShaders = true. This is meant for apps that mainly use their own shaders and don't rely on the default ones. If you set this to true without providing your own shaders, it will still work, but runtime performance might suffer (but how much depends on your app, so it might at least be worth a try).
If you experience this issue in pause/resume operations as well and not just on initial startup, you can try to minimize GL context changes by adding this to your code: mGLView.setPreserveEGLContextOnPause(true); and then check if the GL context in onSurfaceChanged() has actually changed since the last call (even if you don't use it directly for OpenGL ES 2.0). Then only create a new FrameBuffer instance if that's the case.