When you're sending the STAY QUITE command you bring the tag from selected to unselected state.
Then you're sending out the READ SINGLE BLOCK command with a flag value of 0x00.
According to the ISO/IEC 15693-3 standard this means that the Select_flag (Bit 5) is zero. The standard defines the usage of this bit as follows:
Bit 5 = 0: Request shall be executed by any VICC according to the
setting of Address_flag
Bit 5 = 1: Request shall be executed only by VICC in selected state
The Address_flag is defined here (it value is zero):
Bit 6 = 0: Request is not addressed. UID field is not present. It shall be
executed by any VICC.
Bit 6 = 1: Request is addressed. UID field is present. It shall be
executed only by the VICC whose UID matches the UID
specified in the request.
With the flags that you've used in your READ SINGLE BLOCK command you have instructed the tag to answer even if it is not selected. That's why it works.
For your use-case you want the Select_flag (Bit 5) to be one and the Address_flag zero.
I suggest that you take a look at the ISO/IEC 15693-3 standard. A copy of it can be found online here: http://www.waazaa.org/download/fcd-15693-3.pdf
Btw, you get the "Tag was lost" exception because the NFC Service is constantly checking for the presence of the tag. In the case of ISO15693 it probably does so by sending out an INVENTORY command behind your back since INVENTORY is one of the few commands that all ISO15693 tags understand.
You have no control about this, so it is likely that it will interfere with your tries to silence out the tag.