Actually, your architecture belongs to what Goodfellows book describes in “Explicit Memory” section. You made two particular design choices:

attention weights, attention_combine and hidden state depend on each other. It is expressive and appropriate for NLP, but this makes your “cell” unparallelizable. I could imagine simple GRU producing attention weights without consulting “explicit memory”.
And single 4d attention query after that…
2)memory == encoder’s stepwise output. Interestingly, memory can be anything…