Você pode fazer o que você propõe, no entanto, você precisará fazer a chamada da API em intervalos regulares de "algum lugar". Você ainda terá um comportamento indesejado durante o tempo entre o momento em que o banco de dados cai e o próximo ping detecta.
Outra solução é capturar o erro em um manipulador global. (No ASP.NET, você pode fazer isso no arquivo Global.asax.) Você pode inspecionar o erro e ficar bastante granular se desejar, como tomar uma ação se a conexão com o banco de dados tiver expirado ou outra ação se a conexão for válida, mas houver um erro de permissão. Observe que um erro de conexão com o banco de dados só o fará no manipulador global se algo não for resolvido primeiro.
Sugestão: tente fazer com que o "o que você faz a respeito" represente um mecanismo separado do método de detecção. Dessa forma, você pode até mesmo implementar as duas ideias ou uma terceira e compartilhar as mesmas ações resultantes.