1. An apparatus, comprising: a load buffer configured to receive load data, store the load data according to program order of corresponding load operations, and complete load operations by writing the load data to a target memory location, wherein the apparatus is configured to perform load operations out of program order; an execution subsystem configured to: suspend a thread based on execution of a wait instruction; perform a load-monitor instruction, including to: speculatively cause the apparatus to retrieve data from a specified memory location and store the retrieved data in the load buffer; begin to monitor, atomically with retrieving the data and prior to storing the data in a target location of the load-monitor instruction, for a write to the specified memory location without accessing the specified memory location; re-retrieve data from the specified memory location into the load buffer, while the thread is suspended, in response to detecting a write to the specified memory location that is earlier in program order than the load-monitor instruction, wherein the write is detected while the retrieved data is stored in the load buffer; and generate a detection signal in response to detecting a write to the specified memory location that is later in program order than the load-monitor instruction and resume the thread in response to the detection signal.