The way you wrote the on join event it will create a set variable (harddrive write) for every nick that joins on any channel with each of these set variables being rewritten every second until they unset after 400 seconds. I would do something that was network and channel specific maybe like this:
on !*:JOIN:#:{
if !$($+(%,j.,$network,#,$nick),2) && $readini(join.ini,$+($network,#),$nick) {
msg # $+($nick,:) $v1
inc -u999 $+(%,j.,$network,#,$nick)
}
}