On your second point (2.Passing Functions Inline) using inline function or useCallback will not solve the issue if the handler is bound through a useEffect.
You should use the onClick of the element you want to bind. This way the inline would work directly. Also in your useCallback version, it would not work anyway since you give it an empty dependency array, which means it will still keep the stale count value for ever.