How about trying this? Create a PowerShell script that runs every 1.5 hours and downloads the contents of a page? There are a few things that you might try, like just using get-content of a very small file on the mapped drive or something as complex as
$request = [System.Net.WebRequest]::Create("http://companyweb/");
$cred = New-Object System.Net.NetworkCredential
$cred.Domain = "MyDomain"
$cred.Password = "MySuperSecretPassword";
$cred.UserName = "username";
$credCache = New-Object System.Net.CredentialCache
$request.Credentials = $credCache;
$request.Credentials = $cred;
$response = $request.GetResponse();
$requestStream = $response.GetResponseStream();
$readStream = new-object System.IO.StreamReader $requestStream
$data = $readStream.ReadToEnd()
::fixed see edit:: Notice if you use something like the second option you need to point it to an actual page. For some reason if you point it to an URL like http://companyweb/ when it redirects to http://companyweb/sites/home.aspx the request forgets the credentials (which makes me think this method may not work). ::fixed see edit::
Obviously this is not the most secure method as the password is in clear text in the script but since you cannot use DefaultCredentials (SP Online uses forms, right?) there is not much else you could do... I'd also suggest you make a dummy page for this purpose that has no text or web parts on it, just a blank site page. Even if this does not work, I hope you find a solution!
EDIT: I added a credential cache object which may actually make this work.