The problem with listbox.CellBackgroundPaint

That is not true. With the introduction of the ColorGroup class in 2019r3, it is possible to access the native color values.

' Highlight Color (active)
g.DrawingColor = ColorGroup.NamedColor("selectedContentBackgroundColor")

' Highlight Color (inactive)
g.DrawingColor = ColorGroup.NamedColor("unemphasizedSelectedContentBackgroundColor")