It leaves a dead zone near the ends of a moving obstacle.
Instead, I implemented the algorithm in Bridson15, pg.72, fig. 5.2.
Also, I'm sure if setBound() or setBoundMAC() are correct for setting obvel, and I implemented my own version.
(I didn't try to test it separately from the above to verify the culprit.)