Acontece que foi tão simples quanto adicionar
rootflags=default,subvolid=257
ao meu refind_linux.conf, pois adicionar apenas o sistema de arquivos como parâmetro root = faz com que a raiz btrfs seja montada, com subvolumes @ e @home dentro dela. O sistema espera ver o conteúdo de @ (subvolume raiz) montado em / mas, em vez disso, encontra a raiz btrfs com @ e @home montada lá, obviamente quebrando tudo.
A outra solução seria
btrfs sub set-default 257 /
para tornar o subvólito = parâmetro desnecessário. A raiz do btrfs pode então ser acessada pela montagem do sistema de arquivos com subvolid = 0.
Básico do Btrfs realmente. Estou feliz por ter jogado com essa semana (subvolumes, fotos, etc), definitivamente vale o esforço. Finalmente me ocorreu que eu estava montando a raiz do btrfs como minha raiz do sistema de arquivos por causa disso.