My guess is that the GotUsers method has the wrong signature. To keep the compiler happy it should be:
private void GotUsers(EntityFetchedEventArgs<User> args)
In case that's not it, here's a review of other things to look at:
1) The User class should be "shared" between the AppWithPocos and AppWithPocosWeb projects, just like the State class is in States.cs.
2) Make sure that the User class is "known" to DevForce. There are several ways to do this, one is to have the class implement the marker interface IdeaBlade.EntityModel.IKnownType.
3) Define a GetUsers method in a service provider class. The easiest place to do this is within the PocoServiceProvider class in the sample. The method should return an IEnumerable<User>.
4) Since you tried a Users() extension method, it should be defined like so:
public static EntityQuery<User> Users(this EntityManager em) {
return new EntityQuery<User>("Users", em);
}
5) The callback defined in the ExecuteQueryAsync or ExecuteAsync call should have the correct signature (as shown above).