A tachometer (REV counter) using a ugly signal coming from the ignition coil

I've built the suggested circuit using this diagram (found here: Ignition Coil Interface · Issue #2 · seanauff/classic-car-sensor-interface · GitHub):

My H11L1MS indeed accepts 5V and it outputs a nice clean signal for the Arduino:

I'm not sure if I'm happy with the accuracy though:

Hz		  rpm 		rpm Arduino		difference %	difference
42,756	 641		 741				 15,6				100
43,36	  650		 769				 18,3			   119
43,234	 649		 710				 9,4			    61
43,323	 650		 656				 0,9			    6
85,513	 1283		1396				8,8			    113
86,29	  1294		1510				16,7			   216
86,2	   1293		1453				12,4			   160
85,685	 1285		1453				13,1			   168
85,513	 1283		1425				11,1			   142
85		  1275		1396				9,5			    121
85,255	 1279		1368				7			      89
123,239	1849		1966				6,3			    117
124,626	1869		1881				0,6			    12
123,639	1855		1938				4,5			    83
120,12	 1802		1897				5,3			    95
121,047	1816		1955				7,7			    139
121,167	1818		1824				0,3			    6
120,927	1814		1966				8,4			    152
121,407	1821		1909				4,8			    88
134,596	2019		2166				7,3			    147
134,596	2019		2052				1,6			    33
136,003	2040		2070				1,5			    30
143,564	2153		2337				8,5			    184
152,347	2285		2394				4,8			    109
158,572	2379		2308				3			      71
158,887	2383		2365				0,8			    18
103,3	  1550		1738			   12,1			   188

The first column is measurement from the oscilloscope, the 2nd calculated rpm from oscilloscope, 3rd rpm calculated by adruino.

I'm now calculating the rpm using rev*(60000/time)/(C/2).
rev = number of pulses counted
time = measuring time (ms)
c = number of cilinders

Is there a way to improve the accuracy? I am aware that this method of calculation makes that the value the Arduino displays always lags slightly behind compared to the actual rpm.

Perhaps it would be better to measure the time between pulses?