From what you describe of your daily routine, he hasn't had much time to learn or "practice" doing the right thing. My take on this is not stubborn but confused or just doesn't get that he is doing anything wrong. I'm afraid the only easy fix is to treat him like a pup you just got, keep an eagle eye on him for signs that he needs to go (most dogs give some hint, even if subtle), and crate him when you can't watch him. Keep him in more when you are home so that he is able to learn the routine, but never when you aren't able to observe him. You could also try tethering him to you with a leash, so he is right beside you all the time and you won't miss the moment.
Outside is easier for you, but teaches him nothing! IMO, scolding when caught in the act is just fine (others may not agree). "NO", pick him up and go right outside would be my method. (generally they will stop urinating/defecating when picked up, since it startles them). You mention that when you do this he has usually finished his business inside.......I would say if you are alert and close you should be able to interrupt as he is starting, or even before he starts! And I would reward (with praise at least) once outside, even if most of the damage was already done inside.
And just like a pup, get him out often (always, if he is restless) for short potty breaks, and if he does give you something to reward, make sure to emphasize he has done the right thing!