Orphan Handling
I realized that, like with the transaction pool and the future block problem, orphan handling should not be done by the consensus package. It adds a substantial amount of attack surface area that can be avoided by separating orphan handling from the consensus package.