As I understand it:
The actual main bulk memory in a cheap(ish) usb stick is often not really that fast at writing data.
In order to alleviate that, there is faster cache memory which can quickly accept data from the pc and hold it whilst the slower final write happens to the bulk memory, but that cache is smaller. This is fine for smaller files, as the cache can cope by having capacity for the smaller files. I.e. send a few jpegs / docs to the drive, cache memory acccepts it fine, and then commits it to the main memory at a slower rate in its own time. To the user, it looks like its been a fast write.
For larger files that exceed the cache, then speeds will drop over time as the cache cant empty into main memory as quickly as it can accept it into the cache ... so you get a backlog. This then builds up to the point the drive has to stop accepting data, clears out the cache to memory then starts back up again at a faster rate as teh cache is clear. Hence the yo-yo of speeds.
Thats one aspect ... another similar aspect can be the type of memory used in the main memory section of the drive. You now get multi-state memory cells. So instead of pure 1's and 0's per memory cell, you can get values of 0, 0.5 and 1 etc etc ... this means you can squeeze more data into a single cell of memory that you could before. In theory, a chunk of memory which normally held 1Gb of data as 1's and 0's could now be used to hold 2Gb by holding values of 0, 0.5, 1. Its far quicker to initially write into these cells with straight 1's and 0's, (like a cache) ... and afterwards the drive can, in its own time, time convert and compress the data into multi-state values, using a smaller overall amount of cells. But that takes time to do as its slower to write out multi-state values into cells.
Following that thought, in theory, a labelled "32Gb" USB stick, may actually be a 16Gb set of memory cells with 3 states per cell, so it can effectively hold 32Gb of data.
What would happen if you tried to write 24Gb of data to the drive ? It would accept data quickly as 1s and 0's, but then realise that this would fill beyond its 16Gb of space ... so it would have to start converting to the multi-state values at the same time as accepting data ... which in turn would begin to slow down the overall write speed and start the yo-yo effect again.
SSD's are generally better overall at handling this compared to a USB stick due to them having a larger capacity to accept data intially and probably faster more powerful chips inside them to handle and conversion to multi-state values. You often do see though that an SSD might have an initially crazy high write speed which then after a periodof time slows down to a more steady value.