In fact Microsoft changed the SCardBeginTransaction function to reset the card after 5 seconds of inactivity. If a transaction is held on the card for more than five seconds with no operations happening on that card, then the card is reset. Calling any of the Smart Card and Reader Access Functions or Direct Card Access Functions on the card results in the timer being reset to continue allowing the transaction to be used.
After changing our program-flow to minimize the non-activity time in the scard-transactions, the problem seems to be fixed. To avoid the system resetting the smart card after the 5-second timeout, Gemalto recommends you regularly call a transparent function like SCardStatus or SCardGetAttrib, using a timer, after calling SCardBeginTransaction. This change also applies to Windows 8, RT and Server 2012 systems.