Shortly put: you can use whatever simulator you want, even Matlab.
The higher level the simulator, the less you will be able to consider the side-effects of your system.
E.g., you may "think" that a node is able to know the energy of a neighbour node. With ns-3 you'll have to deal with the fact that info have to be embedded in a packet, packets have to be sent and so on.
Still considering the energy, you already noted that Matlab can't really evaluate the energy consumed by the nodes, and so far ns-3 can't either (because the MAC is not using the SLEEP state).
What is the best simulator for you ? I don't know. I could say that you have to work at the lowest level you can, i.e., with a network simulator like ns-3 or omnet++. Eventually, you should enhance and expand a simulator if it doesn't fit your needs. The complexity and the difficulty in using the tool is a price to pay to have realistic results. The easier and the less complex the tool, the less precise and useful will be the results.
Now, the choice is yours.
Cheers,
T.