I'm confused by this wait time calculation. For the first thread, you'll wait until `wait_time` expires, but after that `wait_time - (Time.now - start_time)` will always be negative so you'll always just wait 0.01 seconds. If that's the behavior you want, this seems like a roundabout way to get it; if it's not, what are you going for?