You would do this differently, if you were to move the business logic to a natively compiled procedure. You would not trap the concurrency error inside the Hekaton procedure, because the error can only occur on COMMIT (if I recall correctly). And in a natively compiled procedure, you cannot commit explicitly, as the transaction is the entire procedure.
So in a Hektaton procedure you would only have the UPDATE statements, and the loop with the trapping of the concurrency exceptions would be a in a regular T-SQL procedure that calls the natively compiled procedure in the loop, which means that you can keep the WAITFOR. from the page you linked to.