What happens if I open an app during it's background refresh period?
It should keep performing the refresh but it all depends on how the developer coded the app.  As always, there's proper and improper ways to handle a background refresh and the onus is on the developer to ensure they're using the appropriate techniques and API.  

The app should show the most-recent info it has immediately upon opening (assuming, of course, that it was developed with that capability).  The refresh that was ongoing will continue.  Ideally, once the app has been loaded and is ready to interface with the user, it should refresh itself with the latest available data.  If the developer created the app this way, the user might see old data immediately upon opening the app but then the data will change within a few seconds as the new data is presented.