Qualquer solução simples que funcione é sustentável, confiável e tem bom desempenho é uma boa solução. Parece-me que você já encontrou uma boa solução ...
É provável que uma solução de localização de caminho seja mais complicada do que a solução atual e, portanto, é mais provável que exija depuração. Provavelmente também será mais lento.
OMI, se não estiver quebrado, não conserte.
EDITAR
IMO, se o labirinto for corrigido, sua solução atual é um código bom / elegante. Não cometa o erro de equiparar "bom" ou "elegante" a "inteligente". Código simples também pode ser "bom" e "elegante".
Se você tem níveis de labirinto configuráveis, talvez você deva fazer a busca de caminhos ao configurar os labirintos inicialmente. O mais simples seria conseguir que o designer do labirinto o fizesse manualmente. Eu só me incomodaria em automatizar isso se você tiver um labirinto de bazilhões ... ou os usuários puderem projetá-los.
(Além disso: se as rotas forem configuradas manualmente, o designer do labirinto poderá tornar um nível mais interessante usando rotas abaixo do ideal ...)