Thank you, @FJCC -- my eyes must have glided over that aesthetic in the documentation for geom_text() when I read it earlier.
It is strange how space affects the result when hjust = 0 is omitted, but at least with it, I can use paste() to avoid having to tweak by adding space or removing indentation. For example, here's another failure omits hjust but is an attempt pad the lines to make them equal length:
library(tibble)
library(ggplot2)
tibble(x = 1, y = 1) %>%
ggplot(aes(x, y)) +
geom_text(
label =
paste(
"line 1 is this long ",
"line 2 is longer than line 2",
"line 3 is short ",
sep = "\n"
),
# hjust = 0
)

Created on 2021-03-25 by the reprex package (v0.3.0)