draw((0,0)..tension 2..(0,50)..(100,100));is read as
draw((0,0)..tension 2. .(0,50)..(100,100));So the first . after the two is treated as a decimal point. Just put a space after the integer tension value:
draw((0,0)..tension 2 ..(0,50)..(100,100));
"The dot command defined in the module plain draws a dot having a diameter equal to an explicit pen linewidth or the default linewidth magnified by dotfactor (6 by default)."
Thus, when you use the default pen, the dot will have size 6*linewidth, but when you give a pen with an explicit width specified, you will have a dot of size linewidth. If you want the first case to behave like the second, you may set dotfactor=1.
Asymptote - 06 April 2017