The simple solution for the pre-charge is to have a momentary push button switch and resistor across your main switch contacts.
Simply hold the button down for a second before throwing the switch and you'll get no spark at all.
If you don't have a switch, it might be easier to put another connector on your battery positive connection.
This would be wired in parallel to the Positive cable but would have the resistor fitted in-line.
You simply connect the Negative lead first, then the Resistor lead followed by the Positive lead and again no sparks!
Simple solutions may not always be the best solution, but they are usually easier and cheaper.
Here's another interesting method that I came across while searching for a solution:
This picture shows both the connectors on the motor (speed controller) side.
It uses a ½Watt 33Ohm resistor with one end connected to the controller's negative female socket and the other end left sticking out of the heatshrink.
With this method, the positive lead must be connected first, then you simply touch the sticking out part of the resistor with the battery negative plug to pre-charge the capacitors in the controller before pushing it right into the socket.
(Simple but effective yet again.)Alan