It SEEMS like it shouldn't be racy: * set sense * IF sense fires, it happens immediately, then sense is disabled * register waker * check if sense is disabled, if yes, return immediately, if no, yield until waker kicks