Beamer Custom ToC não funciona conforme esperado

Beamer Custom ToC não funciona conforme esperado

Hackeei uma mesa de frames para beamer e me deparei com uma situação estranha que não entendo.

\documentclass{beamer}

\makeatletter
\newcommand\listofframes{\@starttoc{lbf}}
\makeatother

\setbeamertemplate{background}{
  \addcontentsline{lbf}{section}{\protect\insertframetitle}
}

\begin{document}

\begin{frame}[allowframebreaks]{Title1}
Some text1
\end{frame}

\begin{frame}[allowframebreaks]{Title2}
Some text2
\end{frame}

\setbeamertemplate{background}{}

\begin{frame}[allowframebreaks]{List}
\listofframes
\end{frame}

\end{document}

As duas entradas na lista são "Lista 1" e "Lista 1", mas deveriam ser "Título 1" e "Título 2".

Se eu remover \protect, recebo uma mensagem de erro estranha:

! Argument of \XC@col@rlet has an extra }.
<inserted text> 
                \par 
l.15 \end{frame}
                
I've run across a `}' that doesn't seem to match anything.
For example, `\def\a#1{...}' and `\a}' would produce
this error. If you simply proceed now, the `\par' that
I've just inserted will cause me to report a runaway
argument that might be the root of the problem. But if
your `}' was spurious, just type `2' and it will go away.

O queestá dando errado aqui?

Nota 1:Parece que esses exemplos mínimos ofensivos dependem crucialmente de vários detalhes. Por exemplo, se eu remover o allowframebreaksnos dois primeiros slides, está tudo bem (desde que eu também remova o \protect- se eu deixar, recebo as entradas erradas).

Nota 2:Eu uso o modelo de plano de fundo, pois apenas esse modelo é chamado em todos os slides de continuação; mudar para o frametitle não é uma opção.

informação relacionada