Imagine que a biblioteca System.Reflection fosse case insensitive mas parece que não é. No código
var classe = Convert.ToString(context.GetRouteValue("classe"));
var nomeCompleto = $"Alura.ListaLeitura.App.Logica.{classe}Logica";
retorna Alura.ListaLeitura.App.Logica.livrosLogica, por exemplo. E quando executamos
var tipo = Type.GetType(nomeCompleto);
a variável tipo fica com valor null. Consegui rodar fazendo o seguinte
var correct = classe.First().ToString().ToUpper() + strClasse.Substring(1);
var nomeCompleto = $"Alura.ListaLeitura.App.Logica.{correct}Logica";
E consegui que a variável tipo ficasse com o valor Alura.ListaLeitura.App.Logica.LivrosLogica. O mesmo vale para o método que, nesse caso, forcei ser em letras minúsculas para a comparação funcionar e achar o método
var strMetodo = Convert.ToString(context.GetRouteValue("metodo"));
var metodo = tipo.GetMethods().Where(m => m.Name.ToLower() == strMetodo).First();
Espero que isso possa ajudar quem tiver o problema. A solução pode ser dita nos outros vídeos da aula mas ainda não cheguei neles.