Yeah it's all mostly Air Traffic (safety) that prevents planes from flying the most direct route into NYC.
Today's flight went as far as Albany, NY before lining up in order to land. This flight is often delayed (on arrival) up to 45 mins, due to how busy the air space is over NYC.