For TDC, use a piston stop (M14 x 1.25). I got one for a few quid off ebay to check the markings on my old graduated pulley and I used it to mark the stock pulley I replaced it with.
You pull #1 plug and screw the stop in, then you turn the crank gently with a spanner on the pulley nut until #1 piston comes up against the stop. Make a temporary mark on the pulley where it lines up with the case join. Then reverse direction until #1 comes up against the stop in the other direction and make another temporary mark. Half way between the two marks is exactly TDC. Measure half way and make your permanent TDC mark.
Off the top of my head, I think if you do the same with #3, you'll get 180 degrees from TDC too (useful marking to have when setting the valve gaps).
Remember to remove the stop before you try cranking the engine!!! Stick some tape over the ignition key hole or something.
If you buy a stop, clean the threads up with a fine file and some wet and dry to smooth out any burrs rather than risk damaging your spark plug hole threads.
Don't know about the ballast wire.
Regarding the timing light, I'd be surprised if you could get one without a tach function (rev meter) nowerdays, but check that it's got one. Ideally get one with high rpm and low rpm (High is a coarse scale good for timing the dizzy at high revs. Low is a finer scale that's good for tuning the carb at idle speed.
Choose one that has a variable advance function too...
Variable advance allows you to use the TDC mark for timing at any degrees of advance. You dial in the advance you want (e.g. 30 degrees) and it adjusts the strobe timing to flash at 30 degrees. The strobe then highlights the TDC mark and you adjust the dizzy until it lines up with the case joint.
If you don't get one with an advance, you'll have to either measure the circumference of the pulley and work out where the 30 degree mark is from TDC, or take the pulley off and use a protractor to mark it at whatever degrees you want to time the engine at. That's more restrictive though as you can only time to the mark(s) you've made. In some circumstances you might want to go a little bit advanced or retarded. A variable advance dizzy makes it easier for you to do that and to know what you've actually timed it to.
If you weren't getting an electronic dizzy, I'd recommend getting one with a dwell function to check your points dwell, but that would be 'pointless' with your dizzy.