The method I ended up using was a mostly inferior version, on account of me wanting this text sorted prior to rendering
public void WholeChunks(string str, int chunkSize)
{
int stringLength = str.Length;
// Calculate chunkSize here, take the maxCharacters, first reduced by x (where x is the number of line break counts within the string capped to maxCharacters)
// then reduced by a variable number equal to the distance to the closest " " character or ".", to ensure no words are cut in half.
for (int b = 0; b < stringLength; b += chunkSize)
{
//Will need a variable chunk size rather than one passed in
if (b + chunkSize > stringLength) chunkSize = stringLength - b;
pageText.Add(str.Substring(b, chunkSize));
}
}