compilation of the layout.master is not a factor and recompilation of layout.master is not required when you make changes in your UserControl, but you must rebuild your custom project after every change so that it copies the latest version of your .ascx file and your dll up to the web. Even small changes in the .ascx require you to build it again so it gets copied by the post build event.
editing the layout.master in the skin folder of your skin is the only place you need to edit layout.master. Unlike the custom user control custom layout.master does not go in your custom project and is not copied by post build, it only needs to exist in the skin folder under /Data/Sites/[SiteID]/skins/[yourskinname]
However if you make any mistake in editing layout.master it will fail to load and will fallback to loading it from /App_MasterPages to prevent from crashing the site but it will log an error. You should never edit the file /App_MasterPages/layout.master, only edit your own copy in your skin folder and if something goes wrong check the log for an error about it.
Hope that helps,
Joe