Well it looks like I was wrong, and so I've changed the subject of this thread to reflect what it appears to be, that you cannot use DrawableOverrule at all, because the aforementioned bug doesn't apply to only TEXT, it applies to everything.
Here's the output of a tool I was writing to trace WorldDraw calls to blocks and text:
// Expected output:
BeginContainer: AcDbTable (0x1F7) Name: *T4 Level: 0
BeginContainer: AcDbBlockReference (0x226) Name: A Level: 1
Drawing: AcDbText (0x1BE) Level = 2
EndContainer: AcDbBlockReference (0x226) Name: A Level: 1
EndContainer: AcDbTable (0x1F7) Name: *T4 Level: 0
Command: QSAVE
// Actual result during QSAVE:
BeginContainer: AcDbTable (0x1F7) Name: *T4 Level: 0
BeginContainer: AcDbBlockReference (0x226) Name: A Level: 1
EndContainer: AcDbBlockReference (0x226) Name: A Level: 1
AcDbBlockReference (0x226) Name: A -> : System.InvalidCastException:
Unable to cast object of type 'Autodesk.AutoCAD.GraphicsInterface.ImpSubEntityTraits' to type
'Autodesk.AutoCAD.GraphicsInterface.DrawableTraits'.
at AcMgDrawableOverrule.setAttributes(AcMgDrawableOverrule* , AcGiDrawable*
pThis, AcGiDrawableTraits* traits)
at AcGiDrawableOverrule.worldDraw(AcGiDrawableOverrule* , AcGiDrawable* ,
AcGiWorldDraw* )
at Autodesk.AutoCAD.GraphicsInterface.DrawableOverrule.WorldDraw(Drawable
drawable, WorldDraw wd)
at CompoundDrawableOverrules.DrawableOverrule`1.BaseWorldDraw(Drawable
drawable, WorldDraw wd) in CompoundDrawable.cs:line 87
In this case, it blew up in the call to base.WorldDraw() in an overrule targeting BlockReference, rather than text.
If you can't use DrawableOverrule on drawings that contain tables with blocks inserted in them, then you can't use it PERIOD - which is like it never existed in the first place.