Since you are already using state machines, try taking a look at KB-NEAT.
This is a technique of neuroevolution; that is, the creation of neural networks through evolution.
Also look at rtNEAT, which may come in handy. A typical NEAT implementation uses a generational approach, i.e. Launches a series of games, say, a hundred, selects the best candidates and creates offspring of them. (The other mentioned suitability, which is always used in the evolutionary approach, as well as here) rtNEAT allows evolution to occur in real time; that is, during the game. (This requires a more complex calculation of suitability, as it happens in the middle of the game, where you still don't know the result)
Implementation is actually not such a difficult task, but the key to this technique is genetic history, which is vital to the evolutionary process. (This also makes this technique so amazing compared to previous attempts like neuroevolution, the problem here is that the input and output must be identical, and this may not be the case)
Oh, and your problem can be solved either by a planner at a higher level, or units can study it themselves. And the entrance, which includes the nearest friendly units and obstacles, could, with the right fitness, find out that it works productively to skip the phone so quickly. This is called emerging behavior, and it has been shown that the above methods are able to independently develop such behavior.
Here is an implementation that I find very beautiful to base your work on:
http://nn.cs.utexas.edu/?windowsneat
The above uses generations. I have not seen the implementation of rtNEAT. But you can take a look at John Holland's book, Adaptation in Natural and Artificial Systems. Admittedly, it can be difficult to read because it is very mathematically. But skip most of this and look at the suggestions for algorithms. It is common to all evolutionary algorithms, of which neuroevolution is a subfield. It has an algorithm that rtNEAT is commonly used. (And if you are not familiar with the genetics that are used in evolutionary algorithms, it perfectly defines what a gene, allele, chromosome, phenotype, and genome you will find in NEAT publications; NEAT uses the genome to describe things in a common, which is just a set of chromosomes that together describe the phenotype, since coding is a little more complicated than just genetic algorithms and genetic programming)
The homepage of this technique is here;
http://www.cs.ucf.edu/~kstanley/neat.html
Here is the publication in chronological order;
http://nn.cs.utexas.edu/keyword?stanley:ec02
http://nn.cs.utexas.edu/keyword?stanley:ieeetec05
http://nn.cs.utexas.edu/?kbneat
(KB-NEAT uses rtNEAT already in the above publication)
The fact is that you can basically take what you have, put it into neuro-evolutionary technology and develop from there. This is a combination between a domain-specific ID and a machine learning AI.
Oh and a note; the evolutionary part has processor intensity, at least without rtNEAT. rtNEAT takes time instead, since you need to play a lot against him before he finds out. (KB-NEAT gives him an intelligence base, although obviously). However, when it develops, it is very, very fast, since the response from the neural network is very quickly calculated. (This is a rather small graph, and there was no search)
Oh, and secondly; you need to think a lot about input and output. The result can be easy, as it allows players to carry out their actions. But the entrance is what you want them to see, and you cannot include everything; which would make the problem too difficult for evolution, at least in realistic times. (Although theoretically it will converge with the optimal solution at infinite time)
Oh, and the third note; you can develop several brains for units and even have different brains for each type of unit. The sky is the limit. Perhaps you need a brain for every level of technology of yours or your enemy. It takes extra time to develop, but the brains are small in memory, so the amount is not a problem.
Ack and fourth note; This is a black box technique. I cannot transfer my brain back to FSM, which I am afraid of. The coding in the neural network is not understandable to humans and, therefore, it is not known exactly how it works. Thus, there is a danger that you will get something that you like, but you cannot understand why. And you cannot easily share this knowledge with other agents. (Although you can, of course, use it as a basis for developing new behavior for them)