Well, Tekniko, my idea was to build a foundation so you could understand how to make one that fits your needs, but if it is not clear enough:
The text is constantly lerping towards its origin, but when a new line is appended the text's Y is instantly added the height of a line (in pixels), so even though a new line has been appended, it seems like nothing has changed. The text will lerp towards its origin, and the new line will be uncovered from the mask, that uses substract out (erases all beneath).
No idea why it wasn't scrolling properly when it's vertical allignment was the bottom, but basically all I did to fix it is change it to top and the lerp value. I really can't see where the complicated part is. What do you mean with " the first line of text stays at the top" ? if you add to the append action &time, you can see that is is always scrolling. Again, I changed the vertical allignment only as an example, you can tamper with it all you want.