Summary — Key Points
The problem rarely stems from an inherent issue ffmpeg has with long filenames; it is almost always the combined effect of the shell (spaces/special characters), format auto-detection, encoding/locale constraints, and MP4 container limitations.
Quick fixes: enclose filenames in quotes, force the format (-f srt / -f webvtt), convert subtitles to UTF-8, or use -c:s mov_text for embedding.