I spent a little time reading through. I think I'd have a better idea of what's happening here with more of the code. From what I can see, you want to set the probability threshold of EndTask based on Size, but it's not clear to me how Size is being adjusted. Knowing that would help me think through the best way to set/check your EndTask. For now, it seems like the task can only end at Size>=13.
g_pop = Random(0, 1000) 'Rand number
c.SetAttrib "Pop", g_pop 'Make global
'Set probability for balloon explosion based pm soze
Else If BalloonSize = 3 Then
c.SetAttrib "Probability", 21
Else If BalloonSize = 4 Then
c.SetAttrib "Probability", 42
Else If BalloonSize = 5 Then
c.SetAttrib "Probability", 63
Else If BalloonSize = 6 Then
c.SetAttrib "Probability", 146
Else If BalloonSize = 7 Then
c.SetAttrib "Probability", 239
Else If BalloonSize = 8 Then
c.SetAttrib "Probability", 313
Else If BalloonSize = 9 Then
c.SetAttrib "Probability", 438
Else If BalloonSize = 10 Then
c.SetAttrib "Probability", 563
Else If BalloonSize = 11 Then
c.SetAttrib "Probability", 688
Else If BalloonSize = 12 Then
c.SetAttrib "Probability", 792
Else If BalloonSize = 13 Then
'Check rand against probability. If prob greater, If Size>13, if resp left, EndTask
If BalloonSize > 13 Or g_pop > c.GetAttrib ("Probability") Or theResponseData.RESP = "{LEFTARROW}" Then