I managed to resolve this by closing the loader using a timer in the onclick event of the button:
Button:
<asp:Button ID="btnDownload" runat="server" Text="Download" OnClientClick="setTimeout(closeLoader, 1000);" CssClass="btn btn-default" />
JS:
<script type="text/javascript">
function closeLoader() {
if (window.Loader) {
window.Loader.hide();
}
}
</script>
It feels a little hacky so I'm open to alternative suggestions.