Using GL to draw after OnGUI

I know the execution order of the things inside Unity (including that OnPostRender() is called before OnGUI()). The thing is that I want to be able to draw lines with GL over some GUI textures. I’ve done some research on this and someone (do not remember where I saw it…) said to use OnPostRender as a coroutine. Is this correct? (Because when I tried it didn’t work for me and no one had replied/voted on his answer)

The code I have is the following:

void Update () {
    StartCoroutine(OnPostRender());
}

void OnGUI () {
    /*
    Drawing texture
    */
}
    
IEnumerator OnPostRender() {
    /*
    Drawing lines with GL
    */
    yield return new WaitForEndOfFrame ();
}

Is GUI being drawn after because of a mistake I made, or is it just not possible to achieve this way?

Thanks in advance

//c# example
using UnityEngine;

public class lineOverTexture : MonoBehaviour {

	private static readonly Color lineColor  = new Color (1f, 0f, 0f, 0.88f);

	// Use this for initialization
	void Start () {
		CreateLineMaterial();
	}

	public Texture aTexture;
	
	void OnGUI() {
		GUI.DrawTexture(new Rect(10, 10, 60, 60), aTexture, ScaleMode.ScaleToFit);

		if (Event.current.type != EventType.Repaint)
			return;

		DrawLines();
	}
		
	// Update is called once per frame
	void Update () {
	
	}
	
	private void DrawLines()
	{
		lineMaterial.SetPass(0);
		GL.PushMatrix ();
		GL.Begin (GL.LINES);
		 GL.Color (lineColor);
		 DrawLine(new Vector2(10.0f, 10.0f), new Vector2(70.0f, 10.0f));
		 DrawLine(new Vector2(70.0f, 10.0f), new Vector2(70.0f, 70.0f));
		 DrawLine(new Vector2(70.0f, 70.0f), new Vector2(10.0f, 70.0f));
		 DrawLine(new Vector2(10.0f, 70.0f), new Vector2(10.0f, 10.0f));
		GL.End ();
		GL.PopMatrix ();
	}
	
	private void DrawLine (Vector2 p1, Vector2 p2)
    {
        GL.Vertex (p1);
        GL.Vertex (p2);
    }

	private Material lineMaterial;
	
	private void CreateLineMaterial()
	{
		if( !lineMaterial ) {
			lineMaterial = new Material( "Shader \"Lines/Colored Blended\" {" +
				"SubShader { Pass { " +
				"    Blend SrcAlpha OneMinusSrcAlpha " +
				"    ZWrite Off Cull Off Fog { Mode Off } " +
				"    BindChannels {" +
				"      Bind \"vertex\", vertex Bind \"color\", color }" +
				"} } }" );
			lineMaterial.hideFlags = HideFlags.HideAndDontSave;
			lineMaterial.shader.hideFlags = HideFlags.HideAndDontSave;
		}
	}
}