I believe this is a feature (if you would like to call it that) of iOS6.
It's just a way of not disrupting other applications that might use the connection (or it might be in the middle of a pairing procedure). It may take up to 45 seconds before it is disconnected.
If possible the best solution might be to trigger the disconnect from the peripheral, then the disconnect would happen straight away.
http://lists.apple.com/archives/bluetooth-dev/2012/Sep/msg00090.html