Maybe I am wrong, as I don't know your code or your game, but this doesn't look something for Wait For.
To avoid selecting card when not allowed I would simply use a Boolean check at the beginning of the sub that select/deselect the cards.
Something like this
B4X:
Private Sub ChooseCards
If evaluating Then Return
'Here goes the cards select/deselect
If cardsnumber = 5 Then EvaluateHand
End Sub
Private Sub EvaluateHand
evaluating = True
'Here goes the evaluation process
evaluating = False
End Sub
evaluating is a Boolean declared in Globals and cardsnumber is a Global Int.
Am I missing something important?