Добавить префетч на асинхронные импорты (иногда (не всегда) целесообразно вообще их убрать)
component: () => import(/* webpackPrefetch: true */ 'path/to/component')
сделать так, чтобы данные для компонентов получались не в created/mounted, а раньше, например сильно заранее и хранились в vuex и/или пока получаются данные - отображались скелеты или экран загрузки со спиннером.
А вообще я бы сделал вычисляемое свойство, возвращающее оффер или null/undefined из всего массива офферов, которое быи выводил (или не выводил), цикл именно в макете тут нафиг не нужен.
Таски - в vuex, в отдельном массиве. Кроме id таска писать еще то, к чему он.
Например так:
[{id: 555, entityType: 'comment', entityId: 54, taskType: 'deleting', taskParamenters: {...}}, ...]
Структура с деревом вообще странная. А так - это вариант классического асинхронного RPC.
В компонент передать индекс через проп, при нажатии на кнопку эмитить этот индекс в событии. В родительском компоненте - ловить. как-то так: https://jsfiddle.net/y5981mwc/
https://ru.vuejs.org/v2/api/#key
Если добавить - все работает.
И да, индекс от v-for в данном случае использовать нельзя. Сделай возрастающую последовательность с помощью отдельного счетчика и поле в объекте, например todo.key.