Is there a way for a Paragraph to reference either a custom Form (built with Form API) or a block plugin that renders the same form? I only see a way to have a field that references either custom blocks (content) or configuration blocks, but not both. How can this scenario be solved?
I haven't tried it, but the Dynamic Entity Reference module looks good. The 8.x-2.x branch, although currently in alpha, sounds like it has the functionality you're looking for:
This version allows all content entities as referenceable entities. This version also allows all config entities as referenceable entities but it is only configurable programmatically. The content and config entities can be referenced in the same field as well.
It'll mean a bit of coding to get the config entity working, but a lot less code than writing the whole thing from scratch.