My initial concern was an aggressive server timeout on nginx/haproxy. I think the defaults should be long enough, but it's entirely possible to have something lower than 20 seconds. (and the app developer might not even be aware of this)
I have no reason to think it's unacceptable, was just curious. Interesting project!
It just means you're tying up a thread (or whole process, if your rails app isn't running with threads) waiting for the response.
It's not a requirement though: one may ping from the client side with setInterval.