Please don't cross post.
last sample is 236uS (4237Hz), but I get a sampling rate of 4166.66Hz....?
From the reference page for micros():
" this function has a resolution of four microseconds (i.e. the value returned is always a multiple of four). "
1 / 4166 = 240µS. Which looks to be 4µS off of your 236µS value....