Проблема в том, что вы рисуете на двух отдельных поверхностях: одна поверхность, созданная ViewRoot, и одна поверхность, созданная для GLSurfaceView. Эти поверхности составлены SurfaceFlinger, один поверх другого. (По умолчанию поверхность ViewRoot будет сверху, а поверхность GLSurfaceView снизу.)
Поскольку все ваши виды отображаются на поверхности ViewRoot, все они должны находиться поверх поверхности OpenGL или под поверхностью OpenGL.
Если вы не хотите использовать текстуры, точка, ваш единственный выбор - создать третью поверхность, на этот раз с SurfaceView вместо GLSurfaceView, чтобы нарисовать ваш текст над GLSurfaceView.