Sounds like maybe you're getting over-compensation for record latency. You should be using ASIO drivers, and you can test the actual round-trip latency (RTL) using the free CEntrance ASIO Latency Test Utility (Google it). Then enter a Manual Offset under Preferences Audio > Sync and Caching:
Manual Offset (in samples) = CEntrance Measured RTL - SONAR Reported RTL
This is always necessary for any audio interfacre because the latency reported by the driver to SONAR is never right on. But the error will generally be less than a millisecond and not really noticeable as a sync error so something else may be going on.
In any case, SONAR is not now - and never has been - 'rubbish'. You just need to get your hardware and SONAR configured correctly. I think you've been around long enough to know this.
If you continue to have trouble, just tell us exactly what you have configured for what hardware, how you're monitoring, and how big the sync error is and in which direction - i.e. are new recordings early or late relative to SONAR's audio metronome.
If you're finding that audio is laid down a whole measure late, you may be running into an issue with the metronome count-in that seems to affect some interfaces/systems. If that's the case, try disabling count-in and see if it makes a difference.