Т.е., если переформулировать: разбить текст по символу перевода строки так, чтобы размер первой части не превышал N символов?
text = """Текст слово Текст
Новая строка
Ещё новее строка"""
N = 12
start, rest = text[:N], text[N:] # отделяем ту часть текста, где мы ищем перевод строки, от остатка
first, _, second = text.rpartition('\n') # ищем последний перевод строки в этой части - до него "начало"
last = (second + rest) if second else rest # "конец" собираем из того что после перевода строки и остатка
print('-'*10)
print(first)
print('-'*10)
print(last)
print('-'*10)
Если перевода строки в первой части текста нет, то текст будет просто разрезан по N символам.