Ok, thanks for your answer.
If that's of any help, another way that could be used too, but not as the only one, would be weapon damage ranges: depending on weapon damage ranges, sometimes it is absolutely impossible that a certain swing was performed by a certain hand, because it's too high to be from the other one.
Of course most of the time they can be from either hands, but I guess that could be a way to slightly reduce the margin of error that might exist using solely the method you described, especially when lagging a bit / having weapon with close to similar weapon speeds etc.
Dual Weilding and "+x% to all damage" are taken into account into the Character Sheet melee damage tooltips so that wouldn't be an issue, the only thing that might be a problem is Rogue / Hunter Murder / whatever it's called Talents increasing damage against some kind of enemies only, or debuffs on a target modifying physical damage by a flat percent, but I don't know any.
Like, with OH damage range of 75-150 and MH damage range of 125-200 for instance, all swings above 150 could be labeled as MH straight away for instance. And armor wouldn't be an issue either unless you try to know if a swing is "too low".
Anyway, you probably thought about all that a lot more that I did
.
Good luck on your work, keep us updated!