I have worked with only STM32F407, but I believe all F4 chips have the same flash memory capabilities & organization. I have some experience on designing my own home-brew pseudo file system which stores (key, data) pairs of arbitrary size, which is inspired from ST's application note on EEPROM emulation on flash.
The properties of the Flash of STM32F4 are as follows:
1. They have [16,16,16,16,64,128,128....,128] kB flash sectors (sometimes called as pages in F0 & F1 docs).
2. Flash controller can write 1, 2 or 4 bytes at the same time. There are supply voltage restrictions. 2 & 4 byte writes must be aligned.
3. An erased/empty sector is full of 0xFF.
4. You can flip bits from 1's to 0's during write operations. To make 0 bits 1 again, sector erase is required.
5. It doesn't cause any error to try 0->1 operation. These are just ignored (this is different from F0 & F1 flash)
6. 1, 2 & 4 byte write operations all take the same time. Can't remember exactly, but it was something like ~15 us.
7. Sector erase time depends on sector size. 128 kB sectors take 1-2 (typical-max) seconds to erase.
8. Unless the device has dual flash banks, flash write & erase operations stops CPU execution until the operation finishes.
I'm not very familiar with FATFS, but I think it's not very suitable for STM32 flash. At least it can't be directly used without wearing the flash very fast. There must be something called "Flash Translation Layer" (FTL). There are also file systems specifically designed for NAND or NOR flashes. SPIFFS is a famous one which is used in ESP8266 and ESP32.