Sort:  

You can only grab 10,000 at a time with get_account_history, but you can walk them. Or you can use SteemData.

I need to look at SteemData, seems the right approach

I've been using it far more lately, I usually just use python but I'm starting to love it. You can also use SteemSQL which uses SQL instead of MongoDB.

I estimated the relation between vests and Steem by a linear approximation. You can find my python code here: https://steemit.com/steemdev/@holger80/how-to-estimate-historic-steempermvests-values-for-converting-old-rewards-from-vest-to-steem