I need to host a C# ASP.NET app / windows service on azure. However I need the service to run 24/7 and be extremely reliable.
Então, você definitivamente precisa implantar seu aplicativo em várias VMs e usar o balanceador de carga para redistribuir as solicitações. Se seu aplicativo estiver hospedado em uma única VM e falhar por algum motivo, durante o período de conserto dessa VM, seu serviço sofrerá um longo tempo de inatividade.
Além do HA, o balanceador de carga também oferece a capacidade flexível.
Aqui está um bom artigo sobre o balanceador de carga do Azure, pode ser útil.
======================================
Atualizar
Se você conseguir implantar seu aplicativo no Azure Web App, ele será melhor que a VM. Porque o MS cuidará do sistema operacional e do ambiente de tempo de execução para você. Você pode se concentrar em seu aplicativo. Para HA com o Azure Web App, consulte este artigo .