Well, you're now stuck between a rock and a hard place...
When the LDAP is enabled in Liferay, Liferay will bind to LDAP using the user's credentials to ensure they have access, but the lookup of the LDAP info to use comes from Liferay's database which is populated via the LDAP import.
Basically the path you're on, you'd need to disable the LDAP import/export and, when you're pushing to LDAP, also use Liferay's API to update the user records.
Unfortunately, I think there is a flag that is stored on the User object which indicates if they come from LDAP or not (this is set during the LDAP import). So if you create a new user, they would not have been imported from LDAP and, even though the user may also be defined in LDAP, the auth mechanism may not try to bind to LDAP to validate a user.
It may be better to leave the Liferay import in place (so authentication happens correctly) and acknowledge that there may be inconsistencies between the Liferay user and LDAP. As long as you treat LDAP as the master (disable the LDAP export and only do your user mods in your LDAP portlet), you shouldn't have any problem as the delayed sync will, eventually, occur in a JIT fashion (as long as LDAP is updated when the user is logging in, their info and access will be up-to-date before they actually get into the system).
Please sign in to flag this as inappropriate.