O processo de controle transacional não estava funcionando com o código apresentado no vídeo, quando executamos conforme esta explicado, realmente o campo Matriculas.status não é atualizado (pois o erro ocorre nesta linha), porém o campo Pessoas.ativo estava sendo atualizado para 0 (zero), tornando assim o controle transacional ineficaz.
O problema estava ocorrendo por que o parâmetro transaction não é um terceiro parâmetro de update, mas sim um segundo parâmetro dentro de where. Não sei se ficou claro, mas segue o antes e depois para entenderem melhor:
Antes:
await database.Pessoas
.update({ ativo: false }, { where: { id: Number(estudanteId) } }, { transaction: transacao })
Depois:
await database.Pessoas
.update({ ativo: false }, { where: { id: Number(estudanteId) }, transaction: transacao })