set -e fará o shell sair assim que um comando falhar. Ou seja, assim que o comando unmount for concluído. O if não pode pegá-lo, pois o script sai antes mesmo de chegar ao if . Você pode corrigir isso colocando o comando unmount em a condição if (negada com ! para fazer com que ela execute a cláusula then se a desmontagem falhar, em vez de ser bem-sucedida):
if ! unmount $MOUNTPATH; then
/bin/echo "Failed to unmount! Already unmounted?"
fi