The closest I've come to this is scripting glovepie's fakecursors.
In addition to the real mouse cursor, GlovePIE can show multiple fake cursors. These fake cursors look and behave just like the real cursor, and can do most of the same things.
I was about to develop a glovepie script when I decided to search for something already completed and only came across this question.
GlovePIE is an input emulator with its own scripting language.
The following script will display text in the top left corner of the screen in teal.
Its also possible use custom images for the cursor graphic
Cursor1.image = "c:\data\mycursor.cur"
Test script using Cursor.Caption text:
if joy.Button1 then var.A = "A" else var.A = " "
Cursor6.PosX = 40
Cursor6.PosY = 10
Cursor6.Caption = "TEST: " + var.A
Test script using Cursor.Image:
Cursor1.PosX = 400
Cursor1.PosY = 400
Cursor1.Caption = ""
Cursor1.Image = "A.cur"
Cursor1.Visible = joy.Button1
"A.cur" was created using Paint.NET. When testing this overlay on a game I noticed a black rectangle when the graphic disappeared or changed, which may make this solution unacceptable.