To expand custom views even further, I think there should be a new property that allows you to set your custom view to be an existing control.
Lets say you want to create a custom button called "CustomButton". Create the class as usual, and then you would insert this code:
Now, when you go to add the control, it won't be in the "Custom Views" menu like they normally are. Instead, add a normal Button and then change the "Type" to "CustomButton". It would have the existing Button properties, but would also contain any custom properties you created.