There are few general topic which helps solving problems not only in this game:

1. Variable speed of your PC
many games/libraries uses some "counters" to do short delays. If you do experience big speed degradation check for mce event.
I do not know which tools are working for Windows (I hope someone will add this info).
For Linux you can use:
mcelog, cpufreq-info, yacpi -l, acpi -V
to check cpu speed, trip points and so on.

It is better to change highest speed of cpu to value which will not trigger big speed degradation (cpufreq-set --max) or better get stronger cooling option (most laptops will not handle nicely long term overheating)

the same is important for graphics card but most laptops do have only built-in intel and desktops are less vulnerable to overheating.

2. disturbed net traffic
this game and few other flash games I have met do not work well with any disturbed net transfers...
if you are on the far end of wifi, have some net problems or are using any background net consuming software (even account syncing is bad) you should overcheck it.

you should check your browser proxy setting and probably turn it off if you encounter any problems. may be they have some broken files on some part of the game cluster or it is some broken net stack in the game but turning off proxy seems to reduce number of problems -> refreshing the page with proxy off will solve problem.

3. graphics stack stales -> if you use any cpu monitoring software you can see core used to produce graphics goes 100% and game is staling or showing disturbed graphics...

most of the time simplest fix is to open any popup window in the game (for example options) for 5 s or minimize game window.

that way rendering stack is paused and game starts responding ones more.

it works for me in battles and in the game world (any situation with some part of the screen not refreshing)

4. browser, flash overhead

they can say it is out of theirs hands but I'm sure it is :-)..
as an IT men and in some part of my life software developer I can understand it is for such big project terrible task to fix sth which is hidden somewhere in the code.
I can believe it can be connected to some not well documented style of coding or some limitation which is not well known and described.

more or less you can correct/reduce number of problems using some tips in the Google Chrome thread, try slim browser or check chromium which is smaller/less googled version of the chrome browser (or better chromium is a browser which was used as a base for google chrome)

5. thread not syncing well...

may be I am wrong but it seems not only this flash game do have some problems with synchronization of threads and it is also possible to help the game in this process with assigning chrome threads to 1 dedicated core.

in the Linux OS I am using cpuset for this fix assigning all processes to 1 core and only the game to the 2nd core. it is possible in Windows to force application using dedicated core.
I'll try to do some paper about this point of the list with my helper scripts to ease the task and some thoughs. I'm still checking it (was using earlier 2 core cpu without HT and now I do have 2 cores with HT) so it will take some time. I'll post it in some other place probably as core assigning of chrome threads is not purely connected to Heroes Online.