Here's what I managed to gather, which explains my questions above.
Basically, these extent.* files contain incomplete transactions (due to any reason that prevented the transaction's completion - such as DB disconnection, etc.)
So, to answer the questions:
(1) There are such many open files due to many failed transactions.
(2) They are created, as stated above, upon every failure to complete a transaction. The can be deleted manually when the server is stopped and when you are sure you have no need to recover such failed transactions. You may also activate the "Automatic Recovery" feature of Glassfish to have Glassfish try to recover the transactions when it restarts and delete the corresponding transaction logs.
(3) I was not able to find a tool that allows viewing information regarding the failed transaction.
You may also want to review the following links that describe when transaction logging will be activated. Basically, the relevant settings are in Configurations > config-name > Transaction Service. If the "Recover on Restart" attribute is not checked and the "Disable Distributed Transaction Logging" property is not set, the Glassfish will write transaction logs.
https://docs.oracle.com/cd/E19879-01/820-4343/abeer/index.html