If it's not essential that the calls hit your PBXs first (hard to tell, especially since you describe experimenting with an under-the-covers solution), you might consider what network routing/allocation features your LDC (MCI?) offers. Here in the US at least, LDCs, and some LECs (particularly those offering 800 service), offer customers a number of features that enable network allocation of calls to a single dialed number among a number of terminations. These range from menu selection of predetermined % allocations, to near real-time automated allocations based on ACD historical statistics (AT&T's brandmark for the latter is "Route-It", which draws upon CMS data).
At the next level down, you may want to look into something like Definity Best Services Routing (available above V7), with or without Customer Advocate. This feature set allows interflow among networked PBXs, over DCS or other point-to-point connection types. The most apparent gain is the availability of additional vector commands that allow you to program the set of local conditions for which you interflow calls to the remote location, and the fraction of the local calls that you want to interflow. (You're silent as to whether the remote sites are yours, or a service provider, so there's no way for me to filter whether this kind of capital investment makes sense, or is even possible given control rights over the environment.)
You describe the calls as coming to a single "DID" number, but given that your sites are so distributed, I'm guessing maybe you mean a single toll-free number. With this in mind, does the carrier offer dialed-number identification service (DNIS) [they must], can you get them to translate the "DID", and deliver a VDN number as the delivered dialed digits? Armed with this, you'd at least be able to provide vector handling without the console intercepts you describe.
While it sounds like you're probably interested in real-time load-sharing (i.e.--the two remote locations have about half the volume each at any single instant in time), if you were willing to accept a situation where, at the end of the day, aggregate call volume ended up split 50/50, once you can get the calls into a vector, you could specify a plethora of TOD routing steps that change the number to which the calls are sent every 15 minutes, 10 minutes, 5 minutes, 1 minute......you pick the granularity. While clumsy, risky, and costly in terms of PBX CPU utilization (plus you might run out of vector steps!), it seems like it could be represented as being consistent with the "sequential routing" alternative you said was acceptable to your management.
An extremely low-end solution would be to queue the calls to a single skill at each site, and manually transfer them to the remote offices (I'd like to see the job description for that--"telecom call transfer tech", etc.). Sounds pretty dumb, but I've seen it done plenty of times as a means to peak shave, when the more elegant methods described above fall flat.