Since I got more people interested in looking into this, let me review it:
When I try to purchase a content for the second time with the same account using test mode, this is the partial log:
Code:
[Qt Message] addService("c:\resource\apps\xmldata\iapservice.xml") returned 5
[Qt Message] loadInterface("com.nokia.qt.IAP") returned 0
[Qt Message] --> IAPClientImpl::IAPClientImpl(QObject *)
[Qt Message] --> IapTestMode::IapTestMode(const QString &, QObject *)
[Qt Message] IapTestMode::readTestModeFile: test mode "testserver" "testMode" "Normal"
....
[Qt Message] --> void IAPClientImpl::socketReady()
[Qt Message] IapUtil::readFromSocket() received 1922 bytes
[Qt Message] IapUtil::readFromSocket(): message of 1922 bytes
[Qt Message] "SERVER => CLIENT MESSAGE: Message id: PURDONE, Request id: 1, Status: OK"
[Qt Message] IAPClientImpl::socketReady(): Request 1 , status= "OK" , purchaseTicket= "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/PjxQdXJjaGFzZVRpY2tldCBzaWduYXR1cmU9IjdmZDFjNTk4M2E3MjA5MDEwOTdmMWM2ZWQ1NDgwNjNiODQzNjM4MTEiIG
...
[Qt Message] <-- void IAPClientImpl::socketReady()
[Qt Message] ::. purchaseCompleted with status: "OK"
and on the phone screen immediately after I log in I see this:

When I try exact the same thing but not including the TEST_MODE.txt file (production mode):
Code:
[Qt Message] addService("c:\resource\apps\xmldata\iapservice.xml") returned 5
[Qt Message] loadInterface("com.nokia.qt.IAP") returned 0
[Qt Message] --> IAPClientImpl::IAPClientImpl(QObject *)
[Qt Message] --> IapTestMode::IapTestMode(const QString &, QObject *)
[Qt Message] IapTestMode::readTestModeFile: test mode is not used
It repeats the same flow of when I first purchased presenting me with the payment confirmation screen and if I click the confirm button it bills me again for the same content on the same account (just received my bill from AT&T).
p.s. I don't have the log with me right now (will have to change the code again) but when I tried to use the m_pIAPClient->getRestorableProducts(); on the production server I get the ID for the content but it gives me some "unexpected" error (that I don't remember) when I try to call m_pIAPClient->restoreProduct(productId); I am sure it also did work when using the test server. Of course, the ideal scenario is that we shouldn't even need to go trough the restore products flow and the server would just not bill the second time - EXACT THE BEHAVIOR I SEE WHEN USING THE TEST SERVER.