What are the current limitations of coordicide which need to be overcome?
This question is quite broad. For coordicide we need FPC, MANA, rate controller and autopeering for it to function properly. FPC and autopeering is well defined, MANA and the rate controller are pretty well defined. But these are just the essentials, for the full IOTA experience there are several other facets that need to be developed, so its a long horizon.
From reading the research papers it seems like the biggest challenge with implementing FPC is tuning the parameters in such a way that they maximize the amount of required resources to distribute a double spend while at the same time maximizing the ability for the network to be distributed. I think the same goes for the other modules; optimization of network parameters.
Other than that, from looking at the github, it seems like a lot of what they are doing is fixing issues involved with implementation, optimizing the code and making sure it can run without issues for a long time before release. They want goshimmer to be mature before releasing it to the main net.
There are some general features beyond the protocol though that require a lot more work. Like smart contracts still need compilers, and implementations stable coins. Along with this, we don't have a selective perma-node or a viable solution to it yet. After that there is the issue of sharding nodes to allow low-resource nodes to come together to form usable nodes in the