This is the documented behavior: http://docs.embarcadero.com/products/rad_studio/firedac/frames.html?frmname=topic&frmfile=Multi_Threading.html.
FireDAC is thread-safe, when the following conditions are meat:
A connection object and all associated with it objects (like TADQuery, TADTransaction, etc) in each moment of time must be used by a single thread.
ADManager must be activated before threads will start by setting ADManager.Active to True.
Means, after a thread opened a query, and until its processing is not finished, application cannot use this query and connection objects in an other thread. Or, after a thread started a transaction, and until it is not finished, application cannot use this transaction and connection objects in an other thread.
Practically this means an application must serialize access to a connection across all threads, and that is not a convenient technique. Breaking these rules may lead to misbehavior, AV's and errors like the SQL Server error "Connection is busy with results for another command".