I didn't found a better way to do that within our limits. Actually it's working, like you have also seen and shown. There are several points in the game where items get readd to the inventory after applying them to prevent them getting lost.