I thought about doing thermals based on the area you were flying over and it seemed like it would take too much work to calculate if you make it too massive. Checking for all of a specific block in a certain area becomes increasingly harder the larger the area gets, which is why Slime Blocks are so limited (although that is also because the game needs to detect and move them). We could compromise by it detecting other blocks within a certain distance (a 5 block radius around the player would detect an area that is 121 square meters. The game would look at the Thermal block the player is in and increase the boost that they get by the standard amount plus 1% for each Thermal block the player would be effected by. So going across a large lava lake would give you the standard amount plus a 120% boost to elevation while in the thermal.
I would think it would be more like light levels. Where air blocks around lava/fire would have a heat level, the calculation for this would happen when blocks are placed in the world - so once the lava is in placed, it's a stored value.