Sorry I didn't get back earlier...the only think I can think of would be to use some zonal window perhaps with a range style option to differentiate those areas where values are significantly different. For example a ridgeline running NS would have one half of the zone (of some extent) with a value of 90ish, whereas the other half would have a value 270ish (going by memory now). If you reclassed the raster using the old school notation
32 64 128
16 x 1 where an 'East' facing slope +/-45 would be classed as 1 etc. I then you can see that the
8 4 2 opposites will have a large range or values in the area where the ridge occurs and zones with similar orientation with have the same value. so I am guessing that a Zonal Statistics with the Range option might give you some semi-automation...from there you could go to thinking about joining discontinuities and thinning the output to lines. Some preliminary thoughts...