I'm not familiar with redux, but I can tell you that MVI works well with suspending functions, regular functions, data classes and flows to abstract UI away.
There's no state of the art about that yet though.
I'm personally still figuring things out in that area.
One thing that gained concensus though, is to expose and use suspending functions whenever it makes sense, and keep using suspending functions as long as it makes sense: no need to wrap them, take advantage of them to abstract details and complexity away.