Lettrine and section at bottom of page causes bad pagebreak

Observe that it is possible insert the code snippet \needspace{3\baselineskip} into the middle argument of the \titleformat command, as in

\titleformat{\section}{\needspace{3\baselineskip}}{\lettrine{\thesection}}{0em}
   {}[\vskip-1\baselineskip]

This must be preferable to inserting the instruction just in front of each \section command. (Note that the \Needspace macro is less precise than \needspace in determining how much space there's left on the page.)

On a different subject, I've noticed that you have a lot of instances of \textsc{Lord}; you may want to consider loading the xspace package, defining a macro such as

\newcommand{\Lord}{\textsc{Lord}\xspace}

and then doing a global change from \textsc{Lord} to \Lord in the body of the document. I'm surmising that this would make the code quite a bit more readable. Plus, if you ever want to change the "style" of the Lord's appellation (e.g., add a color), you'll only need to do so in one instance, i.e., in your document's preamble.

Addendum: I can't help make but make two more quick observations related to the formatting/appearance of the document. First, verse 116:6 has a single, very short word ("me") on the second line; if you insert a tie (tilde) between the words "helped" and "me", you'll force the whole verse to occupy only one line. (A side benefit is that the entire 117th Psalm will now fit on the page as well.) Second, despite the fact that their size is \small, the numerals at the start of each verse are quite obtrusive in appearance (in part because they're in boldface). Have you considered assigning them the size \footnotesize instead of \small?


I have found this previous answer to another question which seems to work when I use it modified as \Needspace*{3\baselineskip}

pagebreak if only 1/4th of the page left?