My grain of salt after theses excellent answers
I would be surprised that you can do what you want directly through inheritance.
1-??? IB did make some privates for good reasons, and if you break this model, you may postpone some pretty hard to track bug. Remember this is Asynchronous coding.?
So, I strongly recommend that you keep all private and protected the way they are in particular what is around m_osSignal.
2-??? It¡¯s a data model issue before being a class issue. (classical)
EWrapper is a IO model. (data model of it is focused on IO need)
Once your data model set then you derived your automates for handling the data and then you look at the EWrapper for what you need.
Here also I would be surprised that you can directly hook your needs using EWrapper as the underlying structure, even for what seems a simple action like Buy/Sale your need more than a couple of call. Also handling position even once open, require quit some calls that give rewards thanks to the asynchronous capabilities of the API.
3-??? The API is very fast but not that fast.
Some structures(class) Contract/Orders/etc are pretty verbose once decoded.
Otherwise said exchange of data in a thread safe manner between your model and theirs will not induce a lag that you should ever feel.
So, to share experiences I start by a data model suited for the needs, then slightly superclass the IB Wrapper to feed it (In/Out) to do all the handling but in a completely separated class system. (Allowing relax coding in multiple thread)
Additional reason to not consider the EWrapper as a model class is that you may have to federate data from other feeds and will be happy to not depend upon the data model of IB.
Once all that said, nothing is as good as self-inflicted experience and it look to me like you need to experiment first to see what suit your programming style, keeping what is written above just as MHO amongst others, just to make your feeling more comfortable with tradeoff you will most likely need to do but you may feel afraid to do so because you wonder if it will hold very long. Answer is no it won't if you use EWrapper model.
In short, your first implementation will be pretty far away from final one, so better do it ASAP without investing too much in putting your implementation atop existing API model.