useThrottle(callback, durationFn) - throttles callback execution to max once per duration returned by durationFn