Almost every While/Do While I’ve ever created has utilized a separately created loop counter to ensure it does not get stuck processing in an infinite loop. (e.g. While MyCondition OrElse LoopCount < MaxLoop). It seems like adding this in as an optional integer argument would be beneficial as it is easy to get caught in an infinite loop without adding this.
If an integer is provided, it will loop until condition is reached or the number of times looped reaches that integer. If no integer is provided, it will loop until condition is reached regardless of how many times it loops (aka how it currently works).