Smarter about when we timeout for some playlab levels

Right now we define timeouts for many playlab levels, where we run until we hit the success condition, or we hit the timeout. This leads to weird cases where you hit run with no code, wait for some time, and then get feedback.

For now I'm only changing levels in the playlab script. I opened a bug against myself to look into other levels.

When timeoutAfterWhenRun is true, we will timeout after all the blocks under when_run have been executed, as long as there are not other event blocks with children. In combination with setting timeoutFailureTick: null, that is the only way we will timeout.

This means if you have no code, we timeout instantly and give feedback.

There were also a couple of levels where if I had multiple say blocks I would hit the success condition after the first one, and not execute the rest. Now we execute all of them, and then report success.