You speak as though asynchronous msgboxes were created by B4A. In fact blocking message boxes were always a bit of a workaround, I think, and asynchronous boxes are the underlying style that Android (not B4A) expected. So I don't think this is B4A's fault.
But in anycase by providing the "Wait for ..." construct B4A makes the asynchronous option almost as easy to use as the older form. What is more the pop-up help box for MsgBoxAsync provides a cut-and-paste model for you to use - check it out.
So, to get round to answering your question (at last) here is what I think is the correct way to code your example ...
Private Sub modifyList
Dim sf As Object = xui.Msgbox2Async("Modify list?", "Attention", "Yes", "", "No", Null)
Wait For (sf) Msgbox_Result (Result As Int)
If Result = xui.DialogResponse_Positive Then
Dim i As Int
For i=0 To 10
L.Set(i,10-i)
Next
End If
End Sub