As Robert Chapin said the problem is that it will ping for updates on every load when these filters are set (so it seems).
I have used this to remove it it from pinging for updates and the nag screen,
function remove_core_updates(){
global $wp_version;
return (object) array(
'last_checked' => time(),
'version_checked' => $wp_version,
);
}
add_filter('pre_site_transient_update_core', 'remove_core_updates');
add_filter('pre_site_transient_update_plugins', 'remove_core_updates');
add_filter('pre_site_transient_update_themes', 'remove_core_updates');
It still throws a PHP warning "“Trying to get property of non-object", no idea how to fix that without changing core, also there seems to be no way to hook into dismissed_updates
.