why don't people wrap DependencyProperties in a generic class?

It is not a bad idea, and well worth a try, but it will not work!

You have essentially defined a single dependency property named "Value". This will be OK if you only ever access it via your CLR wrapper (i.e. the get / set code for your Value property). However, much of the framework affects the dependency property directly. For example, style setters, animations will not be able to use your dependency property.

I too share your pain with the DP boilerplate code, which is why I came up with a declarative solution:

[DependencyPropertyDecl("Maximum", typeof(double), 0.0)]
[DependencyPropertyDecl("Minimum", typeof(double), 0.0)]
public partial class RangeControl : UserControl
{
    ...
}

The actual dependency properties are generated by a T4 template within Visual Studio.

https://blog.scottlogic.com/2009/08/18/declarative-dependency-property-definition-with-t4-dte.html