I tried to find a solution with the current state of the ace:tooltip component, but there's no way to achieve this at the moment. While a display listener is supported, which is triggered before the tooltip is displayed, there's just no way to prevent the tooltip from showing once it has been triggered.
Among all the different ways to support this capability, I think the following two ways are the most appropriate.
1. Add a 'disabled' attribute. This attribute would be updated dynamically by rendering a script tag solely dedicated to this setting. This attribute would be read from within the callback function that is executed when the request to the server is successful. So, if 'disabled' is set to true in the display listener, this setting will be updated in the client before the tooltip is displayed. The only disadvantage is that the app developer would have to manage the state of this setting and to make sure to set it back to true in the display listener when the tooltip is meant to be displayed.
2. Add a new TooltipDisplayEvent object which will be passed to the ace:tooltip displayListener and will support the method 'cancelDisplay()'. In this case, the app developer would simply have to invoke cancelDisplay() on the event object and not worry about handling state, since the cancellation would only be applicable to the current display event. In the client side, things would work similarly as the scenario described in the previous approach; the component itself would just take care of handling the state of the 'disabled' setting. The disadvantage of this approach is that it might break compatibility, since the current displayListener doesn't support any event object, so all apps currently using it would have to be updated to support this new event object.
Assigning to Ken to delegate for the next EE release.