Hi there!
Thanks for reaching out about this problem.
This is actually a known issue caused by the user code. All drawing functions, including the HandleCap, have to be called only during Repaint event.
Indeed, the last parameter of the function is an event type but see that as a filter that says which event should be treated for that call (repaint or layout), but there is no check that it's actually the current event type.
Just adding in your scripts a check that the current event is a repaint event when drawing handles will fix your bug :)
I would invite you to take a look at the documentation on this method that does it the correct way:
https://docs.unity3d.com/ScriptReference/Handles.SphereHandleCap.html