Because of the way the Pyramid works, the entires concept of steps and offset is entirely done at the UI level. So it would not actually be that hard to change how that works.
Internally note events are very likely stored as a raw midi event with a timecode in ppqn for its note on and off event. The actual values for the step, duration and offset can only be calculated once you know the current zoom.
At the default zoom level of 5 ( 16 steps per measure ) a 16th note on step 4 with a 50% offset has a duration of 1
At the previous zoom level, that same note is now on step 2 with an 25% offset and a duration of 1/2
So it would be easy to simply change the rule. Right now the math is: If a note falls between 2 steps, assign it to the previous step, and set a positive offset from 0% to 100%. You can shift the note to a negative offset, but when you release, the calculation happens again and he note is shifted to the previous step with a positive offset.
In math terms: the assignment uses a FLOOR function: 1.9 becomes step 1 +90% offset, 2.1 becomes step 2 + 10%
What we want is a to use a ROUND function: 1.9 becomes step 2 -10% offset, and 2.1 is step 2 + 10% more logical to us poor humans ( I don’t think the machine cares )
So instead of having notes that only have a positive offset from 0% to 100% we have notes that have a negative -50% to positive 50% offset.
But internally nothing changes, except the little piece of note display code that compute which pad to light up, and how to express the offset between that step position and the real note timing.