Oi,
no vídeo a annotation @ForeignKey é colocada sobre um atributo da classe (alunoId), porém na documentação ela é informada como um atributo da anotação @Entity.
@Entity(foreignKeys = @ForeignKey(entity = User.class, parentColumns = "id", childColumns = "user_id"))
Estou testando em um dispositivo real, utilizando o stheto para inspecionar a base de dados, quando deixo a annotation sobre o atributo da classe (alunoId), se o registro pai é removido os filhos não são removidos em cascata, porém quando utilizo @ForeignKey como atributo de @Entity, a remoção em cascata acontece corretamente.
Veja também outro trecho da documentação:
"Foreign keys are very powerful, as they allow you to specify what occurs when the referenced entity is updated. For instance, you can tell SQLite to delete all books for a user if the corresponding instance of User is deleted by including onDelete = CASCADE in the @ForeignKey annotation."
No meu caso, vou deixar como mencionado na documentação, pois resolveu o problema, mas poderia comentar a respeito?
Fonte: https://developer.android.com/training/data-storage/room/relationships