I have seen a lot of variations with the 6050. Code I know works fine for me, will not run on someone else's system. Code fixes suggested by others has zero effect for me. My understanding is the DMP code is a reverse engineered sample that the manufacturer will not release actual documentation on. So it is a gamble to begin with.
That being said, I usually reset the FIFO buffer after every read. I get an occasional over flow (1-2 per minute) with a lot of other code running at the same time, and NOT using interrupts. The resulting AHRS data is reliable and solid (UNO) at default rate (100hz). Ive lowered the AHRS rate (you have to modify data tables in a .H file) and I get the same error rate, it seems to have no effect.
As far as line lengths go, it is I2C. It is some magical combination of wire size and length, internal pull up resistors plus external ones. I have usually heard people have success adding some pull-up resistors I2C is a ground sink signal - so it doesn't care if it is 5 volts or 3.3 - only that everything on the bus be the same. Obviously you will do better at 5V on a longer line vs 3.3V. Some will argue the pull ups need to be at termination, some say it doesn't matter. I don't know anything other than the spec is very hard to understand and I have not had problems, especially the kind that require some of the elaborate schemes some people come up with (replacing caps and resistors).
Anyhow, 2 meters would seem to be pushing an Integrated circuit to Integrated circuit spec beyond what it was intended for, communication within a board. You might get it to work, but you also might rethink it.