A few other things that are needed to confirm exactly what and why it's idling at ~500 would be the intake air temps and the engine temps. The ECM is not very complicated, but it makes complicated decisions based off it's preset map definitions and the logging it does of what's going on.
In short, the best way to help someone diagnose the issue would be to see a data log of when this occurs. The more detail the better.
Also, there is nothing wrong with an engine idling at 500 RPM, as long as it's not erratic and the ECM can keep up with the changes that need to be made to maintain idle. I had my '09 2.5i idling at 575-650 until I sold my AccessPort.