Hi there Mark!
Yes, it seems so. The behavior is identical to when you've haven't set your agents to be able to run concurrently. An option we've had for several years with ordinary Agents...
This seems as a huge step back in my eyes, that you're only able to run ONE XPage at a time per session. (From what I understand there's only one thread per session allowed, hence this behavior.)
Long AJAX polling is a common frontend technique to improve performance. Gmail is using it, among several others. Basically you issue one AJAX request and that request is live until the server returns something. If your criteria is fulfilled server-side the data is returned to the AJAX request (this thread finishes) and a new AJAX request is issued and it starts all over again. This way you don't have to hammer the server witch requests every X seconds just to see if something new has happend.
Because of the above I had to revert to setTimeout (a pattern of setTimeout is in general preferred as it will only issue a new request as the first one has finished, setInterval may introduce a race condition).
This works, but it's not an elegant solution.
Love your blog by the way! Keep it up! =)
/J