Encontré algo que parece que podría ser, si alguien pudiera verificar que esto sea correcto:
modelBuilder.Entity<SecureMessage>()
.HasOptional(x => x.ParentMessage)
.WithOptionalDependent(x => x.ChildMessage);
Entonces, después de algunas pruebas serias, esta parece ser la solución.