The 2Mbps is the over-the-air rate, or symbol rate. So you are correct in that you won't ever get this actual throughput as there's preambles, addresses, CRC's, ACKs and resends. But the time taken isn't just the transmit time, there is also time taken to enable the transmitter, time taken to send the 32-byte packet via SPI - which may have quite a few delays depending on the routine you use, switching channels, and the time taken for the receiver micro to read out the packet from its SPI port.
Also note, given how common bit errors are, often a packet has to be resent as there is no FEC, just error checking.
Measuring actual throughput can be quite difficult, especially if you're using libraries that aren't optimized for speed. If you're just timing how long it has the "is sending" flag up then the library could be doing any number of things before it actually flags up that its finished, and might not really indicate how long it takes to send data.
I must say though, if you measured the end-to-end time as 480us for 32 bytes, 533kbs is pretty fast for these modules!