Ich habe etwas gefunden, das so aussieht, als könnte es sein, wenn jemand überprüfen könnte, dass dies korrekt ist:
modelBuilder.Entity<SecureMessage>()
.HasOptional(x => x.ParentMessage)
.WithOptionalDependent(x => x.ChildMessage);
Nach einigen schwerwiegenden Tests scheint dies tatsächlich die Lösung zu sein.