I want these tags to be programmable/exportable so that when we process the document, I can process based on custom rules. Eg. Different colours for person, objects, location , Show summary in the side panel etc .
Personally I think I'd go straight to CKEditor and things like span tags, as 1) you can effectively tag words with metadata, 2) you can process it however you'd like, and 3) it's simple to add your own buttons or plugins for additional conveniences.
Using a CMS and basic web tooling you could build a simple version of what you're looking for pretty fast I'd guess.
Quite a few NLP annotation systems are out there