El resultado de una tarea asincrónica está bloqueando

Tengo un problema con el bloqueo de una tarea cuando intento recuperar su resultado.

Tengo el siguiente fragmento de código que quiero ejecutar sincrónicamente (por eso estoy buscando el resultado)

Ignoraría la razón por la que cada llamada debe hacerse (software heredado que requiere múltiples llamadas a través de diferentes capas)

la llamada parece interrumpirse después de que comienza la tarea para que se realice la última llamada en el PostCreateProfile, puedo ver que esta solicitud nunca llega más allá de esto.

if (CreateProfile(demographics).Result) // Task blocks here
{
    //dothing
}

private async Task<bool> CreateProfile(Demographics demographics)
{
    ProfileService profileService = new ProfileService();

    CreateProfileBindingModel createProfileBindingModel = this.CreateProfileModel(demographics);

    return await profileService.Create(createProfileBindingModel);
}

public async Task<bool> Create(CreateProfileBindingModel model)
{
    HttpResponseMessage response = await profileServiceRequest.PostCreateProfile(rootURL, model);

    return response.IsSuccessStatusCode;
}

public Task<HttpResponseMessage> PostCreateProfile(string url, CreateProfileBindingModel model)
{
    HttpContent contents = SerialiseModelData(model);
    var resultTask = client.PostAsync(url, contents);

    return resultTask;
}

La solicitud llegará a su destino si tuviera que cambiar CreateProfile a un vacío asíncrono de la siguiente manera:

private async void CreateProfile(AppointmentController controller)
{
    ProfileService profileService = new ProfileService();

    CreateProfileBindingModel createProfileBindingModel = this.CreateProfileModel(controller);

    await profileService.Create(createProfileBindingModel);
}

Pero no puedo devolver el bool que quiero usar de esto. ¿Alguien puede señalar lo que estoy haciendo mal?

Respuestas a la pregunta(1)

Su respuesta a la pregunta