I finally come to a point where I have to ask some of the experts here

Iam currently writing my own engine based on impulses. I use MPR for collision detection and get one collision point each physic update. Iam caching them in a similar way it is done in bullet: store all contacts as long as they don't become invalid. 'invalid' means that the penetration becomes negative (1) or the distance orthogonal to the contact normal exceeds a threshold (2). This all works well, iam able to stack many many objects without any jitter with a few iterations and 60fps. (So there seems to be at least no huge bug somewhere in the solver code).
The problem comes with sliding flat objects (here:boxes) : the boxes are in heavy jitter! this becomes really noticeable at even 60fps (I can post a video here if this helps). Of course this comes from dropping all the contact points because condition (2) is true. In the next frame only on collision point is detected which lets the box sink into the ground.. and so on... I can get rid of the problem by setting the threshold of (2) to very heigh values but that also gives strange results for stacked objects - contacts are hard to destroy and friction doesn't look right. - Iam pretty sure that it is possible to slide boxes at 60fps without the noteable jitter- something is going wrong.
Any thoughts on this? How do you store your contacts?