+1 I was going to recommend testing your offset. Sonar and the drivers do this automatically and normally it's never an issue.
So testing the function is one way to rule that out as being the issue.
Just a small change to the above method.
I would not change any setting first to see if the offset is being calculated correctly. This will change if you change audio buffer settings so it's best to leave it on auto if you can.
Use a short patch cable and connect an output back to an input and re record any transient audio track. The more visual the transient spikes the better. If you don't have one, make a audio track by bouncing a midi drum track.
Record to a new audio track next to the original.
To check for clock drift you might want a whole 3 minutes.
Zoom in on the 2 tracks and see if there is any offset showing.
Right now your using your ears. That is flawed. You need to test the system first.
If the tracks line up all is good and you need to look elsewhere for what your hearing.