Regarding the livehistory: I wouldn't know what the limits are (that is what you get with closed-protocol hardware...). So it is hard to determine if the problem you describe is hardware related or something that is wrong in the interface I wrote. I did implemented a command queue that limits the rate at which commands are sent to the stick, no matter how fast your send them through xPL. So that part of the interface should be OK. What the code does depend on currently is the initial response sent by the stick in reply to a command/request. If that response is not produced by the stick, it will cause a 'hang'.
I think that in the Source software from Plugwise, Circles are polled at a fairly low frequency for their live power consumption, so maybe you're just pushing it a little bit too hard?
Also, I remember reading posts from people that experienced hardware hangs when polling the Circles too frequently.
Concerning the 'uninitialized' messages: good catch. This is caused by the fact that a Circle has not responded to a calibration request. At some point (e.g. when you perform 'listcircles' for the first time or request power info for the first time) a Circle is interrogated to get the calibration values. Those values are required to calculate the actual power or energy from the readings reported by a Circle. If the Circle does not respond to the calibration request, a log.basic xPL message is created (that you should be able to log with the current code). But in the current code, the fact that the calibration values are missing is not taking into account the fact that values could be missing due to a Circle not responding to a calibration request.
I will fix this probably this week (congratulations, you reported the first issue
https://github.com/hollie/xpl-perl/issues/1).