How does disabling a core affect the running processes?
It doesn't, unless the program you're using is phenomenally badly written. The OS scheduler will be alerted that the processor is no longer available, and will simply stop scheduling processes into that processor. Putting a process from "running" into "waiting" take microseconds, so the switch will appear instantaneous. The process will continue running on the other core as it becomes available and priority allows.
How does disabling a core affect battery Life
It will have a measurable but not significant effect - in some cases it will increase. In other words, you shouldn't see more than perhaps 5% decrease in energy usage as modern processors already employ aggressive power saving techniques. Processors don't run idle loops - they stop when there's no process ready to run. If the overall system load is low, the OS slows the processors down rather than stopping them, which has a similar savings effect.
In certain, very specific, usage scenarios, energy usage will go up due to how the OS uses the processors (more task switching, which leads to lower performance and higher processor utilisation).
How does disabling a core affect heat generation
As with power, it will be measurable, but not noticeable without careful measurement. Again, the processor already has exceptional power control and will moderate the clocks, voltage, and processor idle to match the load, regardless of how many processors are active.
How does disabling a core affect performance (assuming the processor is using less than 40% of both cores)
Processes are very 'peaky.' When you press a key or move the mouse it kicks off dozens of waiting processes, and wants 100% for a very short period of time.
By forcing the processor to run them one at a time instead of parallel, yes the overall average usage is only 80%, but it will feel laggy not just due to a lot of waiting processes, but also due to the task switching - every time a process is changed (due to priority, or it being finished, or interrupt, etc) the processor loads the OS task, which then runs the scheduler, which then loads the next task.
You're doubling the task switching load on one processor, which means you're running the OS code (scheduler, event manager, etc) much more frequently to keep up with the demand.
This is wasteful, and the performance decrease may actually be noticeable. This additional work would not necessarily need to be performed if the OS had the option of running both processors at 40% of their normal speed, for instance.