Во первых: всё зависит от сигнатуры этого вашего
useApiFetch, очень многое в vue 3 можно сломать неудачной деструктуризацией. Но допустим сам хук нормальный.
В таком случае
isPending - это
ref, а значит он и должен быть прокси, чтоб собственно работала энтая самая реактивность. Чтоб отобразить в консоли чистый объект - есть хэлпер
toRaw(только после этого он уже не будет динамическим).
Далее: если вы выводите в консоль
isPending.value - то в консоль, очевидно, попадает значение на момент вызова
console.log. Магическим образом прямо в консоли оно уже не изменится.
Если ты хочешь понаблюдать за изменениями
isPending - можешь сделать так:
watch(isPending, (value) => console.log('watch isPending', value), { immediate: true });
В заключение предположу, что всё у вас работает как должно, а проблемы с пониманием реактивности vue и асинхронности как таковой.