General concepts
Clear the cache prior to beginning a new project, load only the clips to be used and when appropriate pre-trim them - perhaps with another utility. For example, a recent project contained a 7 HOUR clip that, understandably, bogged down VP. But only 2:30 of it was active video. When the excess was removed, and the trimmed clip loaded, there were no slowdowns or export issues.
Add global effects that apply to lengthy sections or the entire project, last...
Drop a sequence into another, which makes it into a single clip (effects and audio tracks won't appear, but they are there). Or export the sequence, re-import it, and add the global effect.
Use as few tracks, effects, and transitions as practical, and pre-produce repetitive scenes...
Add overlays on the same track when possible, instead of staggering them onto different tracks. While this may not be as pretty as having individual track labels for each overlay, it cuts down on the processing load considerably. Clip names can be viewed by hovering over them.
Pre-produce repetitive clips...
A project had a track of the same scene, looped and transitioned 25 times. That could have been exported, then dropped into the final as a single composited clip. Speed-altered clips may also benefit from pre-production in the same manner.
Break lengthy projects into manageable segments...
Export and review each, then merge them for the final export. Just because a project looks good on the tiimeline doesn't guarantee faultless export.
If clips are very high-resolution or lengthy, Proxies can speed editing. Creating them takes a little time, but often pays off in the long run. See https://nch.invisionzone.com/topic/26563-proxy-editing/
Routinely save, but don't click the SAVE button. Click the chevron to the right of the button and Save As, giving it a unique # or name, to avoid overwriting prior saves.