Dave W is the person to give you the full story, but from other posts here it seems that the sponge "seal" isn't very effective and as you say, hot air from the engine bay is pulled into the heater.
The causes of leakage are the gap you mention, and also the seal may not be touching the underside of the bonnet! I know some people have applied a sealing strip to the underside of the bonnet to ensure a good seal with the seal on the box.
Lining it all up isn't easy as you cannot see where things are, or are not, touching....!!