How to draw a slider button with a custom defined numeric value?
I don't know if it is possible to set the default auto_smooth_angle of each new Mesh object -- I think your reason for trying is legitimate. If it isn't possible there's an alternative you might be interested in.

Rather than changing a default property of a mesh's auto_smooth_angle a solution could be to offer an EnumProperty with some quick-pick options, in addition to the existing slider. The enum would update the slider when an option is selected, if you want to fine tune then you use the slider.



here the rough code:

import bpy
import math
from math import radians

class LayoutDemoPanel(bpy.types.Panel):
    """Creates a Panel in the scene context of the properties editor"""
    bl_label = "Layout Demo"
    bl_idname = "SCENE_PT_layout"
    bl_space_type = 'PROPERTIES'
    bl_region_type = 'WINDOW'
    bl_context = "scene"

    def draw(self, context):
        layout = self.layout
        scene = context.scene

        obj = context.active_object
        if obj and obj.data:
            mesh = obj.data
        else:
            return

        row = layout.row(align=True)
        row.prop(mesh, "use_auto_smooth", text="BreakEdge")
        row = layout.row(align=True)
        row.active = mesh.use_auto_smooth and not mesh.has_custom_normals
        row.prop(mesh, "claas_smooth_angle", expand=True)
        row.prop(mesh, "auto_smooth_angle", text="")


def register():

    def set_smooth_shade_angle(self, context):
        obj = context.active_object
        if obj and obj.data and obj.type=="MESH":
            mesh = obj.data
            mesh.auto_smooth_angle = radians(int(self.claas_smooth_angle))

    bpy.types.Mesh.claas_smooth_angle = bpy.props.EnumProperty(
        items=[(str(j), str(j), "", i) for i, j in enumerate([30, 45, 90])],
        default="30",
        update=set_smooth_shade_angle)

    bpy.utils.register_class(LayoutDemoPanel)

def unregister():
    bpy.utils.unregister_class(LayoutDemoPanel)
    del bpy.types.Mesh.claas_smooth_angle


if __name__ == "__main__":
    register()


or

    row = layout.row(align=True)
    row.prop(mesh, "use_auto_smooth", text="BreakEdge")
    row = layout.row()
    row.active = mesh.use_auto_smooth and not mesh.has_custom_normals
    split = row.split(percentage=0.4)
    row = split.row()
    row.prop(mesh, "claas_smooth_angle", expand=True)
    split = split.split() 
    row = split.row()
    row.prop(mesh, "auto_smooth_angle", text="")