WIP: Heavily revamp recent bufferSkip and resume additions
This fixes a number of subtle and very dangerous bugs and rethinks the usage of “pen” in the many locations it’s used. This should be the last of the really bad resume bugs, but it remains a Work In Progress as pen lift is not yet part of resuming or skipBuffer action. Also ensures if serialWrite is called multiple times, previous timeout is cancelled and only one executeNext() is called.