I would NOT suggest you build this with Captivate. While it might certainly be POSSIBLE to do something like this with Captivate, I would think the amount of control you're going to require over the functionality would mean it's not a good fit. Too much could go wrong.
Also, the fact that you want to be pushing data dynamically to and from the module at runtime could get you into trouble. Captivate is only really designed to support this kind of thing when working with LMSs that are using known integration standards such as SCORM.
Remember also that new Captivate versions come out ever year now. You're talking about having the same version of something working over a 10 year period. In Captivate's history sticking with anything more than a few versions old is not usually a good idea. Too much about the elearning IT landscape changes in that time. And if EVER there was an area that is constantly changing at rapid pace, it's HTML5 and mobile learning.
If I were in your shoes I'd be looking to build this thing from the ground up so that I could control (and modify) every aspect of it at any time I wanted.