I bought a XR50 for my 5-year old daughter. If your 4-year old can ride a bike without training wheels, he will do fine on the XR50. Just make sure you set the throttle stop to 1/8 throttle and start him out in first gear so you can trot behind him until he gets used to it. Then increase the throttle stop to 1/4, then 1/2. Then put it in second gear and let him get used to that before you adjust the throttle higher.
The only problem is that the shifter is too hard for them to shift up on, but the little tykes can start out in 3rd gear without much problem, and I just taught her to shift down for hills.
A CR250 will feel like it has no low end and you will be screaming it and shifting alot more compared to your 500. Get a leftover new 500 from some dealer somewhere, or ante up for a CR500af from Service Honda.
My brother has a CRF450, and it is pretty fast and has a nice wide powerband. It is faster than most 250s, and you don't have to scream it and shift like a madman. It is faster than it seems because it gets better traction and has less wheelspin than a CR500. But when there is traction, nothing beats the arm-stretching of a 2 stroke 500.