Ok I looked and I found the code was actually smarter than I remember. The logic was such that it would go to the end of the sentence given any character count. This way, your truncated text is not cut off, it will go to the nearest end of the sentence.
However, I can appreciate this is probably not what is wanted all the time so in the next release of Grav, this logic will be turned off by default, but you can still use it if you pass a second param of true, so:
{{ 'one sentence. two sentences'|truncate(5) }}
Will print: one s...
{{ 'one sentence. two sentences'|truncate(5, true) }}
Will print: one sentence.