¿Envoltura de palabras más inteligente en PHP para palabras largas?

Estoy buscando una manera de hacer que el ajuste de texto en PHP sea un poco más inteligente. Por lo tanto, no separa las palabras largas sin dejar palabras pequeñas anteriores solo en una línea.

Digamos que tengo esto (el texto real siempre es completamente dinámico, esto es solo para mostrar):

wordwrap('hello! heeeeeeeeeeeeeeereisaverylongword', 25, '<br />', true);

Estas salidas:

¡Hola
heeeeeeeeeeeeeeereisavery
longword

Ver, deja la pequeña palabra sola en la primera línea. ¿Cómo puedo lograr que supere algo como esto?

¡Hola! heeeeeeeeeeee
eeereisaverylongword

Por lo tanto, utiliza cualquier espacio disponible en cada línea. He probado varias funciones personalizadas, pero ninguna ha sido efectiva (o tenían algunos inconvenientes).