It doesn't break at query execution time. It crashes in this routine:
protected override IDbCommand CreateCommand()
{
IDbCommand toReturn = new SqlCeCommand();
toReturn.CommandTimeout = DynamicQueryEngine.CommandTimeOut;
return toReturn;
}
as shown in the stacktrace.
Checking the error exception, you get the exception "NotSupported exception". This is thrown when command timeout is set to a value != 0. According to reflector.
Please set the timeout to 0 in the DataAccessAdapter.
This is a bug in the SqlCEServerDQE. You can work around it by setting the CommandTimeout to 0 on the used dataaccessadapter, which by default set the command timeout to 30. This exception was added for SqlMobile (Sqlserver CE v3.0). SqlServer CE 2.0 doesn't have this exception, hence why it slipped through the cracks.