Org mode's tag completion commands all use a custom completion function, which makes it difficult for alternative completion functions to support well. Emacs already has a function for reading multiple things, completing-read-multiple, which can be used for the tag completion use case. I have attached a patch for this change, which I have tested manually a few times and also fixed the existing tests. I have tested this with vertico, which claims to strictly follow Emacs's completion API.