It's a cool idea but I don't see why this couldn't just have been a JsonConverter and ControlWidget for type object.
There's no situation where you'd create an [Property] object or [Property] List<object> property unless you wanted to "serialize/deserialize values of various types". So an entirely new type just for this seems unneccesary and confusing.