I can tell you what the theory is, but no hands on experience. I read that files get pushed from memory to disk only every few seconds, and files that are removed quickly enough never end up on disk. Not even in the journal.
I am not sure whether a file needs to exist for full 5 seconds to be pushed out or just happen to exist at the moment of checkpointing, which happens every 5 seconds. Probably latter. If so, some files will get sucked up into the disk. This will happen regularly for brief moments.
There are few mount options that I would suggest looking into. You could make those checkpointing moments arbitrarily rare by increasing the interval, but they will still happen. Also deferred allocation has a side effect of keeping data pushed to disk due to reasons I am not able to explain, as described on LWN. I do not remember where I read about that.
- commit=nrsec (Sync all data and metadata every nrsec seconds. The default value is 5 seconds. Zero means default.) on Ext3
- delalloc (Deferring block allocation until write-out time.) on Ext4
Suggested solution: use an in memory filesystem. This way you are sure nothing will be end up on disk. Either tmpfs or ramfs, there are some differences like whether it can swap, grow beyond a specified capacity. I know this is basically what you are using right now. It does not have to be /tmp, you can create a new filesystem of such type over any directory.
http://www.thegeekstuff.com/2008/11/overview-of-ramfs-and-tmpfs-on-linux/