Firebird is the best in embedded area
Here is the full thread on nhibernat and the quote
“However, the thing that finally made us switch from SQLite to Firebird was the fact that it only support one open transaction at a time. This makes it essentially useless for multithreaded/multiuser applications. SQLite is excellent for some tasks, but if you have more than one thread/process accessing the database at the same time you really should consider using another database. ”