I think using TipTap would have been the best option but I decided to build my own editor using contenteditable with the diff-dom library to maximize my learnings.
The editor keeps track of the original text and the modified text (not yet accepted text). The rendering starts by calculating the diff between the two texts and building a virtual DOM tree with special markers for changes. Then, cursors and selections are inserted into the virtual DOM, after which the DOM is processed by the markdown parser. The parser converts markdown syntax into formatted DOM elements. Finally, the virtual DOM is diffed against the contenteditable DOM, and the minimal updates are applied. There is some additional logic to handle cursor positioning between the updates and to manage the history.
I am currently also selling my product (newsletter mailer) via codecanyon. My main concern leaving codecanyon is how to drive potential customers to my site. As you already said there is a huge support effort on codecanyon, due to "inexperienced" customers.