I had the same desire and arrived at this method. I can't vouch for whether it works in every situation, but it has never seemed to fail for me.
The idea is that you force the full natural request by setting :max-width-chars to -1, get that request, then check whether it's below the actual allocation and en/disable the tooltip accordingly. then, of course, change :max-width-chars back to something that allows ellipsisation