As can be seen from the log, both the CORE and PER power domains are not going to the suspend state.
On further debug, I found that McBSP 2 instance belongs to the PER domain whereas SDMA belongs to CORE domain. And at least McBSP driver (on l-o tip) doesn't allow disabling of the clocks unless McBSP instance itself is freed. Because of this, when McBSP is stopped after receiving the suspend request, the clocks are still ON and the PER domain is not allowed to enter to the desired low-power state.
Yes, the McBSP clocks are enabled when the PCM substream is opened and released only when the pcm substream is closed. There are no .suspend/.resume callbacks in the mcbsp driver today. You need to save context of McBSP and disable clocks on suspend and enable clocks and restore context on resume.