I was deep into Draft a while back, and there are some downsides to it though. It's document model is flat, which makes it hard to model nested structures like tables, captions, etc. It also treats a lot of the built-in logic in privileged ways which makes it hard to override and add custom logic. And generally the API and docs are fairly convoluted to use and understand.
If anyone is interested in composing complex editors in React/Immutable, you might be interested in a library I've been working on called Slate:
https://github.com/ianstormtaylor/slate
Unlike most of the other editors, its goal is to not have opinions out of the box. If you're going for just basic WYSIWYG then it's probably not for you, but if you're trying for more advanced editing experiences I think that flexibility is critical.
Anyways, awesome work! I just wanted to add another perspective.