Threads girados com Task.Run sempre saem com o código de saída 259 [duplicado]

Esta pergunta já tem uma resposta aqui:

O que é um código de saída de encadeamento? 3 respostas

Como um exemplo simples, eu tenho um aplicativo WPF com um único botão na janela principal e o código por trás, assim:

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
    }

    async void Button_Click(object sender, RoutedEventArgs e)
    {
        await Task<bool>.Run(() => this.DoOnThread());
    }

    async Task<bool> DoOnThread()
    {
        Thread.CurrentThread.Name = "MyTestThread";
        Thread.Sleep(1000);
        return true;
    }
}

Se eu quebrar em "return true" através da janela de threads do VisualStudio, posso obter o ThreadID, se eu continuar e deixar o código completo e esperar um pouco até que o thread saia, recebo "O thread 0x9ad34 saiu com o código 259 (0x103 ) "exibido na janela de saída do VS.

O que estou fazendo de errado e como garantir que recebo um código de saída de thread 0?

questionAnswers(2)

yourAnswerToTheQuestion