The preview stroke is fine but as soon as you release the trigger the stroke adopts the old material.
I'm guessing the right place to fix this is inside this if block:
in BrushCatalog.Update()
A really crude fix is to repaint everything:
StartCoroutine(
OverlayManager.m_Instance.RunInCompositorWithProgress(
OverlayType.LoadGeneric,
SketchMemoryScript.m_Instance.RepaintCoroutine(),
0.25f)
);
less crudely - how about adding an optional parameter to RepaintCoroutine to selectively repaint based on brush guid?
If you think the approach sounds plausible I'll attempt a PR.