Upon carrying multiple experiments with dataframes of size on the order of 1_000_000, in all the timing experiments I get vstack as faster than concat as faster than extend. Is there a typical use case where one would prefer concat or extend, or is vstack the preferred way to vertically stack dataframes?