This isn't by any means a new technique: it's a variation of Comet, specifically XHR long polling, and/or BOSH.
Having a large-number of long-running concurrent requests makes the Apache part of the standard LAMP stack a dubious implementation choice.
The way this is typically accomplished in a web application is by separating the model and the view: data is persisted in a database (perhaps with a separate in-memory cache), with each short-lived request retrieving only the parts relevant to that request.
Because the data is persisted, a failed read request can be re-attempted.
The request gets reestablished if it's interrupted or times out.
Surfacing connected users' idleness greatly enhances the chat user experience but further compounds the problem of keeping presence information up-to-date.
Each Facebook Chat user now needs to be notified whenever one of his/her friends (a) takes an action such as sending a chat message or loads a Facebook page (if tracking idleness via a last-active timestamp) or (b) transitions between idleness states (if representing idleness as a state machine with states like "idle-for-1-minute", "idle-for-2-minutes", "idle-for-5-minutes", "idle-for-10-minutes", etc.).
All you have to do to install Video Chat is download this Facebook Video Call Plug-in Installer, then double click it to start the process.
Once finished, as long as you have a camera and microphone, you'll be able to video chat without leaving your browser.
The installation is easy enough, but bugs with the system might mean you have to uninstall the plugin and repeat.