Since AsyncPlayerChatEvent is set to Monitor priority, chat plugins will format and send the chat to the server before Shop can cancel it. This is why it's never a good idea to cancel an event with the Monitor priority; other plugins have no way to tell that the event is cancelled. Shop should cancel the event prior to any other plugin being able to act on it, so setting the priority to lowest should fix that.
Since AsyncPlayerChatEvent is set to Monitor priority, chat plugins will format and send the chat to the server before Shop can cancel it. This is why it's never a good idea to cancel an event with the Monitor priority; other plugins have no way to tell that the event is cancelled. Shop should cancel the event prior to any other plugin being able to act on it, so setting the priority to lowest should fix that.