Ответ 1
Причина ctor
заключается в том, что после инициализаторов поля это так, как указано. Из спецификации С# (акцент мой):
10.5.5.1 Инициализация статического поля Статические инициализаторы переменных поля класса соответствуют последовательности присвоений, которые выполняются в текстовом порядке, в котором они отображаются в классе декларация. Если в классе существует статический конструктор (§ 10.12) выполнение инициализаторов статического поля происходит непосредственно перед выполнение этого статического конструктора. В противном случае статическое поле инициализаторы выполняются в зависящее от реализации время до первое использование статического поля этого класса
Если вы хотите иметь полный контроль над порядком инициализации, переместите его внутри конструктора.