You are selecting a card terminal from a list using just an index. This is not the most reliable method of choosing a terminal. The reason you get the wrong terminal is that the reader contains both a contact and contactless readers, which are separate readers to the system. So you were waiting for a contact card to be inserted.
Instead it is much better to choose a card reader by name. You can get the name by using your List
of CardTerminal
s and then printing out the name (or use a diagnostics utility etc., the name is the PCSC determined name for the reader, compiled by your operating system using the reader characteristics and a sequence number).