Para qualquer pessoa que encontre um problema semelhante.
Os índices de todas as tabelas do innoDB estavam corrompidos. A única coisa que consegui fazer no final foi uma recuperação de força.
Quando postei isso, eu já tinha tentado force-recovery = 4 e isso não foi bem-sucedido, então imaginei que não funcionaria.
Embora no final eu tenha conseguido fazer com que force-recovery = 2 funcionasse e permitiu que eu obtivesse acesso aos dados.
Depois de fazer backup de tudo, eu consertei os índices e o servidor ficou bem de lá em diante.