No they do timeout, you can define the timeout in connection string like this
SqlCeConnection conn = new SqlCeConnection();
conn.ConnectionString = "Persist Security Info=False; Data Source = Northwind.sdf;" +
"Password = <password>; server=mySQLServer;Connect Timeout=30";
This is whay MSDN has to say. ConnectionTimeout Property is the time (in seconds) to wait for a connection to open. The value is always 0 in SQL Server Compact as it is readonly.