Okay, I found the reason behind this. It's not what you'd think. The basic cause of failure:
1. Core executes forward 'A'.
2. Forward 'A' in the plugin deletes itself. Core places the deleted information into a cache.
3. Forward 'A' does something like sets a task, or anything that causes Core to create a new forward. Core grabs the old 'A' out of the cache and puts it back into use.
4. Forward 'A' returns. Core is now accidentally reading into about a different forward's calling type. When it goes to free memory associated with each parameter, it will do so incorrectly, permanently damaging the heap.
A very simple way to reproduce this: Make a task. Kill the task inside itself. Set a new task after you kill it. Depending on usage, this has a good chance of killing the heap.
This is a pretty serious bug which has been around since 0.20. A fix is committed as revision
3150. While I'm glad to get this out of the way, I want to make sure it was the problem everyone else was experiencing.
BINARIES A FEW POSTS DOWN!
__________________