As for files, I would go for a net based sync for common files (say Ubuntu One or Dropbox) and then have a shared folder for bigger files (maybe Music, Photos, Video and Ubuntu ISOs). This could be an NFS mount, that when it fails doesn't matter too much, or a Samba share, or probably one of a number of other technologies.
LDAP failing definitely causes trouble. All sorts of system accounts you're normally unaware of can't be translated (name <-> id number) and the system will, at best, repeatedly hang for a minute at a time while waiting for a response from the LDAP server before falling back to the local system. Or the system might just lock up and fail completely.
There are some ways around this. You can set up a local copy and sync it, in various ways - see other answers to this question and to the linked question. You can also tell LDAP to not get the system users from the LDAP directory, but from local files. On our servers we have put the following at the end of our
# We need to ensure that various things can work without LDAP being available
# for example: booting, ssh in as root, apache ...
You would want to make sure that all system users are in that list. Even then it's probably not enough for laptop usage.
From the nss_ldap man page
This option directs the nss_ldap implementation of initgroups(3)
to return NSS_STATUS_NOTFOUND if called with a listed users as
So basically LDAP pretends it doesn't know those users without even contacting the master server, so the NSS falls back on the local users and the system works fine.
One last idea is that if you're willing to spend the time learning LDAP, you could instead learn some basic puppet and use that to keep all your users the same across all systems - see this puppet recipe for example. Puppet will allow you to do a lot of other things aswell - installing common packages, common set up of various aspects ...