Cambiar el tamaño de la etiqueta JavaFX si se desborda

Tengo una etiqueta en un GridPane en un TitledPane. Quiero que se reduzca paso a paso en 0.05em si se desborda para que los tres puntos ("Long Labe ...") no aparezcan -> "Etiqueta larga" en pequeño.

Un método isOverrun () para la etiqueta sería genial, pero JavaFX no proporciona eso y la vida no es un concierto de deseos.
Entonces mi trabajo hasta ahora:

    Bounds tpBounds = tPane.getBoundsInLocal();
    Bounds lblBounds = label.getBoundsInLocal();
    Double fontSize = 1.0;

    while (tpBounds.getWidth() < lblBounds.getWidth() && fontSize > 0.5) {
        fontSize = fontSize-0.05;
        label.setStyle("-fx-font-size: "+fontSize+"em;");

        System.out.println(fontSize+" "+tpBounds.getWidth()+" "+lblBounds.getWidth());
    }

El problema: durante el ciclo while, limits.getWidth () siempre muestra el ancho original. El ancho "nuevo" con el nuevo tamaño de la fuente no se actualiza lo suficientemente rápido como para que la condición while lo atrape, por lo que el tamaño de la fuente es cada vez más bajo.
¿Alguna solución?

editar
Pregunto más comúnmente: ¿es realmente TAN DIFÍCIL hacer que una etiqueta se reduzca, hasta que encaje sin truncar?

Respuestas a la pregunta(3)

Su respuesta a la pregunta