Решение: [MemberNotNull] не работает на статическом фабричном методе, и CS8618 никуда не уходит
CS8618 проверяется при выходе из конструктора, а [MemberNotNull] на статическом методе молча игнорируется для членов экземпляра. Передайте значения в приватный конструктор.