Matt, I think your idea is the best way and that is how I would do it.
Page type with the different images for the different sizes
Set media queries in the transformation with the mobile image as the default and use a repeater to display the slides. Alternatively, you could create a custom webpart that would put the media queries in the header.
<style>
@media (min-width: 768) {
.banner-image<%# DataItemIndex %>{
background-image:url(<%# Eval("TabletImage") %>)!important;
}
}
@media (min-width: 1024){
.banner-image<%# DataItemIndex %>{
background-image:url(<%# Eval("DesktopImage") %>)!important;
}
}
</style>
<div class="banner-image<%# DataItemIndex %>" style="background-image:url(<%# Eval("MobileImage") %>);" />