etna: more robust cmdbuffer flush handling

When something goes wrong during reserve, abort with an error, as it means
that the command buffer is in inconsistent state.

Also work around an apparent Vivante kernel driver bug that results in
hangs.