Посмотрите на ToolTipManager .
Вы можете зарегистрировать свой компонент в этом диспетчере, а затем настроить ряд параметров. Его довольно просто использовать.
Это, по крайней мере, может решить вашу начальную проблему задержки.
Для вашей первой проблемы вы можете переопределить команду createTooltip из вашего компонента, чтобы получить экземпляр JTooltip. а затем легко вносить изменения в положение, когда вы перемещаете указатель мыши (иначе следуйте за указателем мыши) в качестве его подкласса класса JComponent.