Setting custom normals without customdata_custom_splitnormals_add() operator?
Turns out you don't need the operator at all and I was getting funky results because I had a remove_doubles operation further down the pipeline.

Working example code:

no_array = []
for face in me.polygons:
    for vertex_index in face.vertices:
        no_array.append(mesh_verts[vertex_index][3:6])
    face.use_smooth = True
if use_custom_normals:
    me.use_auto_smooth = True
    me.normals_split_custom_set(no_array)