Max size of a BLOB value which can be written into NVS is 4000 bytes. This value doesn't depend on total partition size.
Also please update your copy of ESP-IDF and check latest documentation
nvs_flash_init_custom function has been removed. NVS partition size is defined in partition table now, so you can set the size to anything you like.
Be advised though, NVS design was not optimized for storage of large values. It works better if you break down the struct into individual values and read/write them separately. By "better" I mean "it uses Flash more efficiently", both in terms of utilization (lower amount of space which can't be used for storage), and the number of flash erase cycles. It shouldn't break if you throw a 4000 byte value at it, but if you are dealing with structs of that size, you may be better off using
esp_partition_* APIs directly.