There are some parameters to check for having audio and video in sync, many others softwares set them automatically, Blender doesn't, so you have to configure them manually.
First of all in the timeline set the sync type to AV Sync (this affects the behaviour during live playback only, it doesn't affect the renders).
Then load the movie in the movie clip ...
Open your model.
Add a new scene.
In the new scene open VSE, hit Shift+A and import your video.
Add a Scene strip using the name of the scene containing your model.
Make the two strips overlap where you want the crossfade.
Then add a crossfade.
Generally, the keyframes (as the name indicates) of blender animations are based on frame numbers instead of absolute time. So if you render an animation that has been created with 30fps in mind at 60 fps, the video will be half the length.
If you really want it to be 60 fps and you do not want to redo the whole animation, you could make use of the "...
As solved in the comments, just use the hard cut instead of the soft cut, because the soft cut mantain the entire video clip in the strip and the parts you cut away are just hidden (infact you can re-expand the clip moving the start or the end side.
The hard cut creates a strip that is just the part you cut, infact you can move the sides inside to narrow it ...
The Viewer and Composite nodes are different outputs, The Composite node is the one that is rendered out and saved to a file. The viewer is just to preview the result. Connect the composite so that it follows the same node path as the viewer, otherwise the images get processed following different transformations.
I observed this behavior on Linux with Blender 2.83.5.
I found a workaround:
Create a font strip in VSE
Set the font you would like to use (the preview does not reflect this)
Delete the strip
Perform an undo. At least in my configuration, the text is rendered in the correct font.