Joining files fail with "h264_mp4toannexb filter failed to receive output packet"
One easy workaround I found while writing this question is simply discarding the broken piece of the input file before trying to concatenate the files, in a separate command, since -f concat and -ss 00:03:00 don't work together when "h264_mp4toannexb filter failed to receive output packet" is present.

For example, to discard the first 3 minutes of the file, then concatenate separately:

$ ffmpeg -i broken.mov -c copy -ss 00:03:00 fixed.mov
$ mv broken.mov broken.mov.ignore
$ ffmpeg -f concat -safe 0 -i &lt;(printf "file '$PWD/%s'\n" ./*.mov) -c copy o.mov


I still can't understand why concatenating is the only operation that fails with that error, but the source code linked above might give some hint.