await работает, но вызывает задачу. Результат зависает / блокируется

У меня есть следующие четыре теста и последний зависает, когда я запускаю его, мой вопрос, почему это происходит:

[Test]
public void CheckOnceResultTest()
{
    Assert.IsTrue(CheckStatus().Result);
}

[Test]
public async void CheckOnceAwaitTest()
{
    Assert.IsTrue(await CheckStatus());
}

[Test]
public async void CheckStatusTwiceAwaitTest()
{
    Assert.IsTrue(await CheckStatus());
    Assert.IsTrue(await CheckStatus());
}

[Test]
public async void CheckStatusTwiceResultTest()
{
    Assert.IsTrue(CheckStatus().Result); // This hangs
    Assert.IsTrue(await CheckStatus());
}

private async Task CheckStatus()
{
    var restClient = new RestClient(@"https://api.test.nordnet.se/next/1");
    Task restResponse = restClient.ExecuteTaskAsync(new RestRequest(Method.GET));
    IRestResponse response = await restResponse;
    return response.Data.SystemRunning;
}

Я использую этот метод расширения дляRestsharp RestClient:

public static class RestClientExt
{
    public static Task ExecuteTaskAsync(this RestClient client, IRestRequest request) where T : new()
    {
        var tcs = new TaskCompletionSource();
        RestRequestAsyncHandle asyncHandle = client.ExecuteAsync(request, tcs.SetResult);
        return tcs.Task;
    }
}
public class DummyServiceStatus
{
    public string Message { get; set; }
    public bool ValidVersion { get; set; }
    public bool SystemRunning { get; set; }
    public bool SkipPhrase { get; set; }
    public long Timestamp { get; set; }
}

Почему последний тест зависает?

Ответы на вопрос(5)

Ваш ответ на вопрос