I have the behavior of CPLEX during a MIP search, when it finds the optimal solution in a reasonable time during a forced "solution polishing" phase only. Otherwise, if you do not switch the search process to "solution polishing", it will work for hours without any guarantees to find the optimum! I've had unsuccessful attempts to play around with the search parameters. The point is that I need to shorten the search time and I believe that understanding the reasons of this behavior can help me.
Sorry to be discouraging, but I think this is likely a matter of luck, and I'm not sure there is any useful way to understand it. If you have not already done so, you might try switching the MIP emphasis to 1 (feasibility) or 4 (hidden feasibility) or, if you have version 20, to the new setting 5 (heuristic), which emphasizes finding good solutions early. You can also try tweaking the RINS heuristic frequency or turn on the local branching heuristic.