Ring multiple extensions simultaneously and route based on DIALSTATUS -- busy, no answer, or unavailable each get different handling.
Set up a call queue with timeout-based failover to voicemail or another destination.