Despite the 26.3 Snapshot 6 changelog implying that invulnerable_time is restricted to LivingEntities, it can exist on all entities. However, on some, including cushions and end crystals, the value will never decrease.
To reproduce:
Ensure ticks are not frozen
/summon armor_stand ~ ~ ~ {invulnerable_time:999}/data get entity @n[type=minecraft:armor_stand] invulnerable_time
✅ The value has decreased by the number of ticks which elapsed in between you running the two commands/summon cushion ~ ~ ~ {invulnerable_time:999}/data get entity @n[type=minecraft:cushion] invulnerable_time
❌ The value remains the same
It does decrease for non-living entities like boats, but doesn’t decrease for block-attached entities like cushions and paintings