Note that the last two sysctls have be done after the sunrpc kernel module loads, but before the nfs module loads in order to take effect. You might have to throw those two into an init script to get it to occur in the right order.
[...]
# max out the number of task request slots in the RPC code sunrpc.tcp_slot_table_entries=128 sunrpc.udp_slot_table_entries=128
Are you sure about it? We have always used it in NFS-root environment where full NFS stack is loaded from within initrd before /etc/sysctl.conf gets chance to be processed. AFAIR it must be set before file system is mounted, as it is per-mounted filesystem parameter.
BTW we also use multiple mount points even though they physically point to the same exported volume. Although this is more relevant for high throughput environment, not for single threaded app.