adb backups fail with "Internal exception during full backup"
While I was typing up the question I managed to finish a full backup. I used the -nocompress flag (which isn't documented in the help for adb), and used the same passphrase for the backup as for my Android file system encryption.

So, this was the full command:

adb backup -nocompress -apk -shared -system -all -f "adb-backup.$(date +"%Y%m%d").ab"


logcat:

...
I/file_backup_helper( 6652):    Name: shared/0/0/Ringtones
I/file_backup_helper( 6652):    Name: shared/0/0/Ringtones/hangouts_incoming_call.ogg
I/file_backup_helper( 6652):    Name: shared/0/0/Ringtones/hangouts_video_call.ogg
I/file_backup_helper( 6652):    Name: shared/0/0/Ringtones/hangouts_message.ogg
I/file_backup_helper( 6652):    Name: shared/0/0/Podcasts
I/file_backup_helper( 6652):    Name: shared/0/0/Music
D/BackupManagerService( 2061): Full package backup success: com.android.sharedstoragebackup
D/BackupManagerService( 2061): Full backup processing complete.
D/bu      ( 9722): Finished.
D/AndroidRuntime( 9722): Shutting down VM
D/BackupManagerService( 2061): Full backup pass complete.