Truncar una cadena sin terminar en medio de una palabra

Estoy buscando una forma de truncar una cadena en Python que no corte la cadena en el medio de una palabra.

Por ejemplo:

Original:          "This is really awesome."
"Dumb" truncate:   "This is real..."
"Smart" truncate:  "This is really..."

Estoy buscando una manera de lograr el truncamiento "inteligente" desde arriba.