Hi Max,
Please have a look here:
https://www.amazon.com/clouddrive/share/p0glll5beTSc3XVTYOt0X07VG3T4lkjDB0AEffOXQxI
The first part I have taken from here:
https://www.cineversity.com/vidplaytut/siggraph_2018_rewind_russ_gautier_cinematic_techniques_in_cinema_4d
43:48 [min:sec]
The R21 options with Volume Fields were then added to get the motion.
Since the top part is moving faster, I added a Linear Field.
This Linear Filed could be used as well or only in the Volume Fields Set up, as done here:
https://www.amazon.com/clouddrive/share/8eLVWlMBn04x9kA4PEhjcNksEoV6eEIdksAVn34yBjW
The Volume Fields will allow then to add extra particles into it, that will move with the same hot air motion close to the flame. They might not move in sync when they move up, hence the two version with the Linear Field. That would be an artist-call, what to use.
Change the Segments, the Noise, and the Speed to get closer to your idea about it.
Perhaps set the loop in the Random Field to a specific value and bake the mesh out as Alembic.
All the best