SD uses map_restart(true); in script iirc, effectively reloading the map without wiping level.game (aka the game[] array) and the player.pers[] arrays.
You should set your sv_wwwdldisconnected to 1 to fix it, it'll make the client disconnect from your server while downloading, hence the map_restart(true); not influencing his download progress.