I'm currently working on the following issue on Windows Vista SP2 and Windows 7 RTM which doesn't happen on Windows XP SP3: if a process that reads from a smart card is aborted unexpectedly after a call to SCardBeginTransaction without calling SCardEndTransaction, other instances of the same application or any other application using the same card will hang when trying to connect to the card with SCardConnect.
After you repro the issue, you can restart the Smart Card service or just remove and re-insert the card in the reader to be able to use it again. Now, that workaround won't work in all scenarios, so we have just released a fix for the issue on Vista and Server 2008.
A process that connects to a smart card hangs when a program that requires you to use the smart card crashes in Windows Vista or in Windows Server 2008
The fix for Windows 7 and Server 2008 R2 is on its way, but it won't be released before Service Pack 1 is publicly released next year (sorry, don't know the exact date).
I hope this helps.
Alex (Alejandro Campos Magencio)