None of the factors you listed are applicable for both soft and hard asserts.
Soft asserts - record failures but dont fail the test right away but do it at the end of the test ( when assertAll() is invoked )
Hard asserts - record a failure and break the test execution right at that point itself.
A quick search on the internet should give you more elaborate tutorials documents regarding hard and soft asserts.