As I expected this issue occurs because of different time sources for HRM and GPS logs.
HRM time in track log is taken from phones clock.
GPS time in track log is taken from satellite(?).
So in result you will always have some time offset because satellite clock and phone clock will differ.
Is this a bug or expected behavior?