Task.Run создает новый шаг, чтобы выполнить код, который вы передали из него.Планируется, что эту работу выполнит TaskScheduler и, скорее всего, некоторые вещи по управлению потоками в глубине .NET и ОС.Какой код на самом деле выполняется первым, вероятно, является недетерминированным (т. Е. Это не может быть гарантировано), и он называется «условием гонки».Однако на практике накладные расходы на запуск нового потока и выполнение вашего кода почти наверняка всегда будут занимать больше времени, чем исходный поток, для выполнения следующей строки.Так что в этом 'экземпляре' он, вероятно, всегда будет выполняться вторым.