Olha, eu posso até te explicar como desenvolver um daemon em Python, mas sinceramente, você provavelmente não vai querer uma solução caseira se for para um sistema real em produção (ou seja, se não for para puro aprendizado).
Você vai querer que esse serviço heart beat fique rodando 24h por dia ou que rode a cada 5 min todo dia, certo? Onde você vai rodar isso? Vai deixar seu computador ligado? Você precisa pensar no que acontece se o seu serviço de heart beat parar de funcionar.
Se você rodar seu serviço na nuvem, da AWS, por exemplo, você pode ter um lambda Python invocado a cada 5 min, e se o serviço estiver fora do ar, você gera um alarme. Dependendo do que for o serviço que você pretende testar, você pode configurar seu serviço para escrever em log a cada 15 min e configurar um alarme caso o log não seja escrito. Em outro serviço de nuvem, como google cloud, você terá serviços similares.
Depende muito da sua necessidade em específico.