Allay can't use off-hand correctly.
Reproduce using the following command:
/summon minecraft:allay ~ ~ ~ {HandItems:[{},{id:grass_block,Count:1b}]}
/summon minecraft:allay ~ ~ ~ {HandItems:[{id:grass_block,Count:1b},{id:grass_block,Count:1b}]}
This results in:
Item floats in front of the allays.
[media]Strange holding position when the allay holds the item in both hands.
[media]You can't remove items from the alays off-hand.
I can confirm this behavior.