As per the discussion here, assigning a System.Object that isn't a UnityEngine.Object will not keep the object alive and away from the GC.
This is because we use a weak-reference as lazy-resets to keep performance high.
We do not want to sacrifice performance so for this specific use-case and likely a niche problem, we should add information to all the "callbackTarget" scripting docs.