1. Make sure the enable_game_sync_preparation setting is on.
Unity Editor -> Edit -> Project Settings -> Wwise Initialization -> Enable Game Sync Preparation
But in my case, it was still going wrong.
2. Finally, I found out that the order matters.
I should PrepareGameSync before PrepareEvent.
The sound comes out when the order is 1-4-2-3-5, while no sound comes out when the order is 1-2-4-3-5.
It is inconsistent with the notes of official website:
The order in which you call AK::SoundEngine::PrpareEvent and AK::SoundEngine::PrepareGameSync is not important.
So, the official website notes is misleading, or it is a wwise's bug?