There's still a fair amount of work needed, unfortunately. Thanks for linking to my previous post, that saves me a bit of time to fish it out :-)
Matt Corallo has done a lot of work on making bitcoinj fully verifying. Getting that work merged in is obviously the most important next step. You can find it here and you may prefer to work based off his branch instead of bitcoinj master, at least for now:
Matts work is of very high quality and I usually find it can be merged with few or no changes, so I don't anticipate a ton of merge conflicts if you do base your work on his. On the other hand making bitcoinj fully verifying is a huge change and needs to be reviewed very carefully due the potential for seriously messing up the network. And I have many demands on my time, so it'll take a while. Certainly, if your understanding of the Bitcoin protocol is solid, doing reviews of his work will help me out too.
Beyond that, we'd still need to do a proper fee solver/coin selector, listening for incoming connections, a proper addr broadcast manager, and so on.
I think most of the work is just generally refactoring/abstracting the code better. I definitely want bitcoinj to evolve away from being purely mobile-oriented and become more of a general kit for building Bitcoin applications and Bitcoin-style networks. Right now bitcoinj is under-abstracted and suffers a lot from missing/rough APIs, tight coupling between components, etc.
Without knowing more about your research I can't really say whether it'd be easier to use bitcoinj or Satoshis code. I'm interested in all Bitcoin related research - if you describe it more I could give you further advice. A lot depends on how close to the existing Bitcoin network you need to be.