To use newlines in the built-in Subtitle filter, you must specify the lsp (linespacing) argument:
subtitle("First line\nNext line\nLast line", lsp=12)
See the Subtitle wiki page for more info on the argument.
I just went through a very similar use-case working with TS files. MoritzLost has the key point but as ffmpeg options can be quite difficult to sort out when you are first getting started, here is a more detailed answer.
For a single input mp4 file and single input SRT file, we can keep all streams from both files and merge them into a new mp4 ...
This is a workaround which converts the files to another container format. It happens almost as fast as your hard disk can write data because nothing is re-encoded.
use MKVToolNix (specifically mkvmerge) to combine the mp4 files and their srt files into mkv files (perhaps you can automate this with a loop). I never use this tool via command line and cannot ...
dmMediaConverter is very similar to MKVToolnix.
It is just a ffmpeg gui, so it can save in any format.
To replicate the described MKVToolnix use, select "Convert", then "Add files", selecting both video and subtitles.
Check "Enabled" to keep the stream, uncheck to remove it.
Check "Copy" to keep the stream as it is, uncheck to trasnscode it.