I use the simple device Bill mentioned above. The upper end of the rod is larger than the hole through its spark-plug like body so the rod, which is graduated in mm can't fall into the cylinder. The rod is graduated in mm and also has a small o-ring and you can tell from the psst sounds what stroke you are on.
I don't believe the piston shape matters though. The rod will contact the piston at a given point and that point will rise and fall consistently. What can easily be done is compensate for the angle. The rod is moving as the hypotenuse of a right angle triangle and we are interested in the vertical side. If you know the angle of the plug-hole, simple trig. gives the compensation factor. For example it's 90% of the rod movement if the angle is 60 degrees and 70% if the angle is 45 degrees.
I fitted a manual advance to my twin when I had it, and this made timing even easier as it ran slack wire advance. From memory, 34 degrees advance is approx. 3/8", remembering to rotate the engine backwards first to take up all the backlash in the gears.
I have to admit I used a pencil for most of my life. Funny what you are shown as a teenager sticks - I guess that's because it worked!
Gerry