Your comments

It should work if you put the file "Ink.tmLanguage" from the "grammars" folder into the following location in Textastic: 

Local Files/#Textastic/Ink/Ink.tmLanguage

You can open two windows of Textastic and put them side-by-side. There is no diff view that shows you added and deleted lines though.

Would it be enough if this could be specified in the SSH connection's settings or do you need this to be on a per-tab level?

Looks good, but I think there is a semicolon (";") missing at the end of the "@charset" line in local.css. 

Textastic only adds a row above the standard iOS keyboard. To make this available in all apps, I would need to provide the full keyboard. It's not possible to just add a row like I can in my own app. This means I would need to re-implement the standard iOS keyboard, which I don't think is feasible.

Textastic already starts a background task when you switch to another app which should keep the connection alive for about 30 seconds on iOS 13 (on previous iOS versions, the OS granted longer background execution times).

Other apps solve this by using background location tracking - this API is primarily meant for navigation apps, so they can provide turn-by-turn instructions in the background. But, apps like Prompt and Working Copy ("mis-")use it as a "connection keeper" feature that gives you a history of locations where you connected to remote servers with the side effect of keeping your connections alive.

On iPad you can also put two apps side by side or in a slide over window to keep Textastic running.

Mosh is licensed under the GPL, which means I would need to make Textastic's source code publicly available which I don't want to do at the moment.

Can you please share the file with me so I can try to reproduce the issue on my device?

Textastic 9.3 adds a new “Line Height” setting that you can use to adjust the spacing between lines (defaults to 110%).