Correctness of Hierarchical MCS Locks with Timeout