Timing and speed issues with pin change interrupt based routines - Arduino slow?