That’s exactly right. LogError can be really useful if you want to record an error, cause that test run to be listed as a failure, and continue running the rest of the test.
If you want the script to fail and stop running, you can either use exit all after the LogError command to stop the run, or you could throw an exception instead:
throw "ExpectedValueError", "Expected:" && expected_value && "Got:" && actual_value
When used in a low-level function that may be called from a lot of places, this has the advantage of making it possible to catch the exception in some places where you call the function so the script can continue. If it’s not caught, the exception will cause the script to fail and stop immediately.