Your environment is absolutely small enough to support going 100% cloud without too much difficulty. However, given the bandwidth limitations and desire to keep file shares locally --
I'd recommend getting a stand-alone server at each (which it sounds like you are doing). I'd run hyper-v on both so you can have two servers - a DC and a fileserver on each physical server. Ensure both sites are connected via VPN and that the servers are on the same domain. Configure DFS to handle file replication on your file servers. This will allow for your locations to failover for to the other office in case of a local hardware failure. (this is a bit old but gives a good overview of DFS if you are unfamiliar https://technet.microsoft.com/en-us/library/cc782417(v=ws.10).aspx)
Make sure you have a solid backup, especially for the fileserver. I like MozyPro for small businesses. Veeam if you grow bigger (lots of small datacenter will lease Veeam licenses on a per VM price per month, this is WAY cheaper at a small scale than buying outright).
I'd still push email to office365, the hardware required to service highly available email for your environment would be too expensive and too much work. Office 365 will natively integrate with your on-premise active directory.
To get here, I'd set up the new servers and the new VMs in your current domain (unless you want to take the opportunity to change your domain name or radically restructure something). Configure DFS and ensure replication is working is a test environment, and then switch users to work off the new hardware. Once everyone is working and bugs are worked out, depreciate the old and use the old hardware as lab equipment. :)
I didn't want to wall-of-text you, but let me know if you want more information about any of these steps. Good luck with your project!