Dividir la cuerda en dos, tendrá casi la misma longitud

Tengo una cadena: "Esta es una cadena de muestra", y necesito dividirla en 2 cadenas, sin romper las palabras, y que las dos cadenas tendrán la longitud más cercana, por lo que el resultado será:

["This is a", "sample string"].

Otro e.x .:

"Gorge is nice" => ["Gorge", "is nice"]

También será bueno, si la función puede obtener como parámetro el número de elementos que obtendré como resultado.

¡Gracias por la ayuda!

Respuestas a la pregunta(3)

Su respuesta a la pregunta