Coreless pager motor PWM frequency and smooth acceleration

I am building a model train controller for a small tram layout, and I am trying to figure out what PWM frequency to use with my tram's tiny coreless motors. I have found through various sources that coreless motors prefer a high frequency PWM signal, but when I try to run them at a high frequency (32kHz), they stay stalled until around 50% duty cycle. Problem is, as soon as they start, they fly, and only then can I then reduce the speed to a nice slow crawl. When I use the standard PWM freq (488 Hz), the tram starts at about 15% duty cycle and accelerates nice and slow, like a real one would. So my question is, would using a low PWM frequency be problematic, and if so, how could I make the motor start sooner at the higher frequency?

I am using the Arduino Uno R3, and the motors are 3 volts each and draw about 9mA unloaded. I am using a 1N4007 as my flyback diode in a basic single-transistor (4N3904) driver.

I don't know whether a low PWM frequency wold be problematic for those motors, but in general, smaller motors have lower inductance and need higher PWM frequencies to run efficiently.

The problem with using a high PWM frequency may be the 1N4007 flyback diode. Rectifier diodes like that have slow recovery times, so they absorb a lot of power at high switching frequencies. As the motor current is so low, a small signal diode such as 1N4148 would be better. If that still doesn't work well, perhaps you should try an intermediate PWM frequency, such as 3kHz.

Looks like the 1N4007 diode was the culprit, the tram starts moving now at about 20% with a nice slow start.

On the other hand, maybe not. It is better, but it still seems inconsistent; sometimes it accelerates beautifully, other times it stays stuck.