That sounds like a problem with your code rather than an issue with using flash memory.
However, SD cards offer many advantages over chips. You can interface with them in two ways - using either a SPI or SDIO bus. Which one you will want to use depends on which microcontroller you are using - some have a built in SDIO interface, which makes life easier. If your microcontroller doesn't have a built in interface, SPI is the way to go. To avoid any problems with your interrupts, it is best to perform the write and reading using DMA.
The write speed depends on the operating frequency of the bus, but for the SPI interface it maxes out at around 120 kB/s. For the SDIO interface it is the write speed of the card - which maxes out at 10 MB/s.