A way to check your Earth on the engine block is to attach a jumper cable from the engine, a good bracket will do the job, and connect that to the earth of the battery, if your cable does not reach then an area of suitable body work. If you crank and it starts no problem then your problem will be in a faulty earth.
Do you have a local battery specialist? If so take your battery into them and get them to test it, just because it shows 12v on a tester does not mean it is fit for purpose, you may have a drop in cranking amperage, and they should be able to load test and drop test it for you. This will either highlight or eliminate this as a fault.
As strange as this suggestion may sound, I've had it before when the starter relay has an intermittent fault. Somewhere in the wiring has become damaged and the damaged wire is not providing the starter relay with a solid 12v feed when the ignition is turned. There are ways to bypass this but to be honest I doubt that is your problem.
You should be able to test resistance through your starter solenoid. The last one I checked (not mini) was around 4 ohms I think. Alternatively find a starter motor specialist. I have a cracking guy near me who retfurbishes them for peanuts in comparison to a new motor.
Personally I think your problems may be battery related, hopefully so because that's the cheapest option.
EDIT -
The way that you are getting no dash lights at times for me suggests the starter motor is not the problem in this instance but your power source is. Faulty starter or not your ignition lights should come on every time, the only cause for no lights, like I say, is because your power source is not capable.
Edited by tomm, 12 November 2015 - 10:29 AM.