This was partially broken with rBde9ea94fc6f8: Transform: Deduplicate time snap code.
The Frame Step and Second Step snapping options were working as if
they were Nearest Frame and Nearest Second respectively in the
Dope Sheet and NLA editors.
In the Graph Editor the problem was more serious:
"Second Step: ... The keyframe itself moves along as though in snapping
were active at all, while its handles 'stay behind' until it reaches
the next second boundary, at which point the teleport handles to
'catch up'".
Also, for the Graphic Editor, snap inversion (by pressing Ctrl) would
trigger incremental snapping (which should not be supported).
The snapping code for these modes was spread across the transform
mode code and recalcData of each data type. Therefore, create a
unified snapping code for these options so that all issues are fixed in
one place.