ESC control with Raspberry Pi
RC car ESCs are designed to work with RC car transmitters, most of which have a 'trigger' that is pulled to go forwards, pushed back to brake, and pushed back twice to go in reverse. The neutral position is part way between full reverse and full forward, but may not be in the center because the driver might want more forward than reverse. The neutral point also has a 'dead-band' range to account for slop in the trigger neutral position.    

The 'end points' are usually set to about 1100us and 1900us to allow for mechanical variation in the throttle trigger, and to provide some 'trim' range without exceeding 1~2ms. The ESC is calibrated for an even smaller range (typically ~1200us to 1800us) to ensure that full throttle is achievable even with a poorly calibrated transmitter.    

If maximum pulse width is exceeded the ESC may decide that the pulse is corrupt and shut down, or it might 'autocalibrate' itself to the maximum pulse width (and then shorter pulses will result in lower speed).

There is a programming card available for your ESC that allows you to set the neutral range, braking force, reverse speed, starting torque and battery cutoff voltage. This may fix a lot of your problems.