If you need things to be updated/set/handled immediately.
event -> Handled immediately
asyncevent -> Added to the event queue
N.B. adding to the event queue also checks to see if the same event is already present and thus performs a deduplication.
So both have their pros and cons.
Using asyncevent will introduce some delayed response to events, which may help getting out of (or even preventing) typical loops like acting on an event when a relay is closed, causing it to open again, etc.
But depending on the situation it may also trigger such loops when other event handling is based on assumed states after some event should have been handled.
So the answer to your question is: It depends