Writing a while loop with a condition is fine. Of course, you need to make sure the end condition is eventually met, but that is true of all your examples. You don't have to use break, there is nothing wrong with using a simple while loop to do a simple job.
Looping while True and then breaking inside the loop is useful in some cases, but I wouldn't say it was something you should always do. You are just moving the condition to an unexpected place and complicating the loop logic. That is not something you should do without a good reason.
Using a `run` variable is also useful in some cases but certainly not a general rule. If `run` is just set by calling `check_count` it would be easier to just put `check_count` in the while statement.